Skip to Content
Nuova versione 12 disponibile 🎉

Ordine di esecuzione

I target che dipendono l’uno dall’altro devono essere eseguiti nell’ordine giusto. Babel Desktop li raggruppa in flussi, ne numera i passi e può passare la mappa di ridenominazione di un target al successivo.

Collegare due target

Gli ancoraggi sinistro e destro di un target lo collegano a un altro target. Trascina dall’ancoraggio destro del primo target all’ancoraggio sinistro del secondo, oppure fai clic sui due ancoraggi uno dopo l’altro. Babel Desktop chiede a quel punto a che cosa serve il collegamento.

La finestra di dialogo Connect targets, che spiega che il secondo target può leggere la mappa di ridenominazione del primo, così i nomi pubblici che usa vengono rinominati allo stesso modo, oppure essere semplicemente eseguito dopo il primo, con i pulsanti Execution order only, Cancel e Pass the map fileLa finestra di dialogo Connect targets, che spiega che il secondo target può leggere la mappa di ridenominazione del primo, così i nomi pubblici che usa vengono rinominati allo stesso modo, oppure essere semplicemente eseguito dopo il primo, con i pulsanti Execution order only, Cancel e Pass the map fileLa finestra di dialogo Connect targets, che spiega che il secondo target può leggere la mappa di ridenominazione del primo, così i nomi pubblici che usa vengono rinominati allo stesso modo, oppure essere semplicemente eseguito dopo il primo, con i pulsanti Execution order only, Cancel e Pass the map file

Scegliere tra ordine di esecuzione e collegamento map

SceltaEffetto
Solo ordine di esecuzioneUn arco di flusso, etichettato FLUSSO →: il target A viene eseguito prima del target B. Da A a B non passa nulla.
Passa il file di mapUn collegamento map, disegnato come linea tratteggiata con l’etichetta MAP: A scrive la sua mappa XML di ridenominazione e B la legge, così B usa i nuovi nomi dei simboli pubblici di A. A viene eseguito prima di B. Vedi Ridenominazione cross-assembly.

Usa un collegamento map quando B chiama l’API pubblica di A ed entrambi vengono offuscati con i simboli pubblici rinominati. Usa un arco di flusso quando B deve solo essere eseguito dopo A e non legge nulla da esso.

Un collegamento map attiva Generate Map Out File per il primo target e aggiunge la sua mappa ai Map In Files del secondo. Se il primo target non imposta né un percorso di output né un percorso per la mappa, la sua mappa viene scritta in una posizione fissa accanto al suo input, per esempio BabelOut/Library2.dll.map.xml, così il secondo target la trova sempre.

I collegamenti map non vengono memorizzati a parte: Babel Desktop li ricava da queste due impostazioni, quindi anche un progetto scritto a mano o con Babel UI mostra i suoi collegamenti map. Gli stessi collegamenti compaiono in tre punti:

  • Sul canvas, come linea tratteggiata MAP, e nel riquadro del secondo target, sotto Legge il file map di.
  • Nel gruppo File map del pannello delle proprietà del secondo target, sotto Map da altri target. Vedi File map.
  • Nella griglia, nella scheda Map del secondo target, dove la voce riporta Da e il nome del primo target. Vedi Dettagli del target.

Un target unito a un altro target non scrive una mappa propria, quindi non può essere il primo target di un collegamento map.

Flussi e passi

Un flusso è un gruppo di target legati tra loro da archi di flusso, collegamenti map o dipendenze di unione, incorporamento e riferimento. I target non legati tra loro formano flussi separati. Ogni target mostra il suo passo, cioè la posizione in cui viene eseguito nel proprio flusso, in alto a destra nel suo nodo. Il suo riquadro mostra entrambi, per esempio Flusso 1 · passo 2.

All’interno di un flusso i target vengono eseguiti nell’ordine dei passi e, dove nulla lo stabilisce, nell’ordine del progetto. I flussi vengono eseguiti uno dopo l’altro nell’ordine del progetto, oppure contemporaneamente quando Esegui in parallelo i flussi indipendenti è attivato. Gli archi di flusso vengono salvati nel progetto come normali dipendenze tra target di MSBuild, quindi MSBuild compila i target nello stesso ordine.

La griglia può mostrare le stesse informazioni come colonne: Flusso · Passo ed Esegui dopo, cioè i target che devono terminare prima. Raggruppa per flusso raggruppa le righe per flusso. Vedi La griglia del progetto.

Target che si attendono a vicenda

Babel Desktop rifiuta i collegamenti di un nodo con se stesso e gli archi duplicati, e rifiuta un collegamento che costringerebbe due target ad attendersi a vicenda. Se i target di un progetto aperto da disco attendono ciascuno il file map dell’altro, il progetto si apre comunque. Babel Desktop mostra un errore che indica il ciclo, per esempio Library1.dll → Library2.dll → Library1.dll, e il progetto non viene eseguito finché non rimuovi un collegamento.

Rimuovere un collegamento

Per rimuovere un arco di flusso o un collegamento map, fai clic su di esso e premi Delete o Backspace. Esc annulla un collegamento in corso o deseleziona tutto. Rimuovere un collegamento map toglie la mappa dai Map In Files del secondo target; puoi anche fare clic sulla × del suo nome sotto Map da altri target nel pannello delle proprietà.

Last updated on