Ordre d'exécution de la cible
Sur cette page
À partir de MSDN : [Ordre de compilation cible][1]
Détermination de l’ordre de construction cible
MSBuild détermine l’ordre de compilation cible comme suit :
- Les cibles InitialTargets sont exécutées.
- Les cibles spécifiées sur la ligne de commande par le commutateur /target sont exécutées. Si vous ne spécifiez aucune cible sur la ligne de commande, le Les cibles DefaultTargets sont exécutées. Si ni l’un ni l’autre n’est présent, alors le la première cible rencontrée est exécutée.
- L’attribut Condition de la cible est évalué. Si l’état l’attribut est présent et évalué à faux, la cible n’est pas exécuté et n’a plus d’effet sur la construction.
- Avant qu’une cible ne soit exécutée, ses cibles DependsOnTargets sont exécutées.
- Avant qu’une cible soit exécutée, toute cible qui la liste dans un L’attribut BeforeTargets est exécuté.
- Avant qu’une cible ne soit exécutée, ses attributs Inputs et Outputs attribut sont comparés. Si MSBuild détermine que tous les fichiers de sortie sont obsolètes par rapport au fichier d’entrée correspondant ou fichiers, puis MSBuild exécute la cible. Sinon, MSBuild ignore la cible.
- Après qu’une cible a été exécutée ou ignorée, toute cible qui la répertorie un attribut AfterTargets est exécuté.
[1] : https://msdn.microsoft.com/en-us/library/ee216359.aspx
dépend des cibles
Définissez une séquence de cibles (Target1
, puis Target2
) qui doit s’exécuter avant Target3
. Notez qu’une requête d’exécution pour Target3
est nécessaire pour provoquer l’exécution de Target1
et Target2
.
<Target Name="Target3" DependsOnTargets="Target1;Target2">
</Target>
<Target Name="Target2">
</Target>
<Target Name="Target1">
</Target>
Après les cibles
Définissez une cible (Target1
) pour laquelle une demande d’exécution entraînera l’exécution de Target2
par la suite.
<Target Name="Target2" AfterTargets="Target1">
</Target>
<Target Name="Target1">
</Target>
## AvantCibles
Définissez une cible (Target2
) pour laquelle une demande d’exécution entraînera l’exécution préalable de Target1
.
<Target Name="Target2">
</Target>
<Target Name="Target1" BeforeTargets="Target2">
</Target>