Zoeken…


Opmerkingen

Van MSDN: Target Build Order

Bepaling van de doelopbouwvolgorde

MSBuild bepaalt de doelvolgorde als volgt:

  1. InitialTargets-doelen worden uitgevoerd.
  2. Doelen die op de opdrachtregel zijn opgegeven door de schakeloptie / target worden uitgevoerd. Als u geen doelen op de opdrachtregel opgeeft, worden de doelen van DefaultTargets uitgevoerd. Als geen van beide aanwezig is, wordt het eerste aangetroffen doel uitgevoerd.
  3. Het kenmerk Voorwaarde van het doel wordt geëvalueerd. Als het kenmerk Voorwaarde aanwezig is en als onwaar evalueert, wordt het doel niet uitgevoerd en heeft het geen verder effect op de build.
  4. Voordat een doel wordt uitgevoerd, worden de DependsOnTargets-doelen uitgevoerd.
  5. Voordat een doel wordt uitgevoerd, wordt elk doel uitgevoerd dat het vermeldt in een BeforeTargets-kenmerk.
  6. Voordat een doel wordt uitgevoerd, worden het kenmerk Inputs en het kenmerk Outputs vergeleken. Als MSBuild vaststelt dat uitvoerbestanden verouderd zijn ten opzichte van het overeenkomstige invoerbestand of bestanden, voert MSBuild het doel uit. Anders slaat MSBuild het doel over.
  7. Nadat een doel is uitgevoerd of overgeslagen, wordt elk doel uitgevoerd dat het vermeldt in een AfterTargets-kenmerk.

DependsOnTargets

Definieer een reeks doelen ( Target1 en vervolgens Target2 ) die moet worden uitgevoerd vóór Target3 . Merk op dat een uitvoeringsverzoek voor Target3 vereist is om ervoor te zorgen dat Target1 en Target2 worden uitgevoerd.

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

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

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

AfterTargets

Definieer een doel ( Target1 ) waarvoor een uitvoeringsverzoek ervoor zorgt dat Target2 daarna wordt uitgevoerd.

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

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

BeforeTargets

Definieer een doel ( Target2 ) waarvoor een uitvoeringsverzoek ervoor zorgt dat Target1 vooraf wordt uitgevoerd.

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

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


Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow