Ricerca…


Osservazioni

Da MSDN: Target Build Order

Determinazione dell'ordine di costruzione target

MSBuild determina l'ordine di costruzione del target come segue:

  1. Vengono eseguiti i target InitialTargets.
  2. Vengono eseguite le destinazioni specificate sulla riga di comando tramite l'opzione / target. Se non si specifica alcun target sulla riga di comando, vengono eseguiti i target DefaultTargets. Se nessuno dei due è presente, viene eseguito il primo target rilevato.
  3. Viene valutato l'attributo Condition del target. Se l'attributo Condition è presente e viene valutato come false, la destinazione non viene eseguita e non ha ulteriori effetti sulla build.
  4. Prima che un obiettivo venga eseguito, vengono eseguiti i suoi obiettivi DependsOnTargets.
  5. Prima che un obiettivo venga eseguito, viene eseguita qualsiasi destinazione che lo elenca in un attributo BeforeTargets.
  6. Prima che un obiettivo venga eseguito, vengono confrontati l'attributo Inputs e l'attributo Outputs. Se MSBuild determina che i file di output non sono aggiornati rispetto al file o ai file di input corrispondenti, MSBuild esegue la destinazione. Altrimenti, MSBuild salta il bersaglio.
  7. Dopo che un obiettivo viene eseguito o saltato, viene eseguita qualsiasi destinazione che lo elenca in un attributo AfterTargets.

DependsOnTargets

Definire una sequenza di Targets ( Target1 , quindi Target2 ) che devono eseguire prima Target3 . Si noti che una richiesta di esecuzione per Target3 è necessaria per causare Target1 e Target2 da eseguire.

<Target Name="Target3" DependsOnTargets="Target1;Target2">
</Target>

<Target Name="Target2">
</Target> 

<Target Name="Target1">
</Target> 

AfterTargets

Definire un target ( Target1 ) per cui è richiesta l'esecuzione causerà Target2 da eseguire dopo.

<Target Name="Target2" AfterTargets="Target1">
</Target> 

<Target Name="Target1">
</Target> 

BeforeTargets

Definire un Target ( Target2 ) per cui è richiesta l'esecuzione causerà Target1 da eseguire preventivamente.

<Target Name="Target2">
</Target> 

<Target Name="Target1" BeforeTargets="Target2">
</Target> 


Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow