msbuild
Kolejność wykonania celu
Szukaj…
Uwagi
Z MSDN: docelowa kolejność kompilacji
Określanie docelowej kolejności kompilacji
MSBuild określa docelową kolejność kompilacji w następujący sposób:
- Cele InitialTargets są uruchamiane.
- Cele określone w wierszu poleceń za pomocą przełącznika / target są uruchamiane. Jeśli nie określisz żadnych celów w wierszu poleceń, uruchamiane są cele DefaultTargets. Jeśli żaden z nich nie jest obecny, uruchamiany jest pierwszy napotkany cel.
- Atrybut Warunek celu jest oceniany. Jeśli atrybut Warunek jest obecny i ma wartość false, cel nie jest wykonywany i nie ma dalszego wpływu na kompilację.
- Przed wykonaniem celu uruchamiane są jego cele DependsOnTargets.
- Przed wykonaniem celu uruchamiany jest każdy cel, który zawiera go w atrybucie BeforeTargets.
- Przed wykonaniem celu porównywany jest jego atrybut Wejścia i atrybut Wyjścia. Jeśli MSBuild stwierdzi, że jakiekolwiek pliki wyjściowe są nieaktualne w stosunku do odpowiedniego pliku lub plików wejściowych, wówczas MSBuild wykonuje cel. W przeciwnym razie MSBuild pomija cel.
- Po wykonaniu lub pominięciu celu uruchamiany jest każdy cel, który zawiera go w atrybucie AfterTargets.
DependsOnTargets
Definiowanie sekwencji celów ( Target1 , następnie Target2 ), które musi wykonywać przed Target3 . Zauważ, że żądanie wykonania dla Target3 jest wymagane, aby spowodować Target1 i Target2 do wykonania.
<Target Name="Target3" DependsOnTargets="Target1;Target2">
</Target>
<Target Name="Target2">
</Target>
<Target Name="Target1">
</Target>
AfterTargets
Zdefiniuj cel ( Target1 ), dla którego żądanie wykonania spowoduje, że Target2 zostanie później wykonany.
<Target Name="Target2" AfterTargets="Target1">
</Target>
<Target Name="Target1">
</Target>
BeforeTargets
Zdefiniuj cel ( Target2 ), dla którego żądanie wykonania spowoduje wcześniejsze wykonanie Target1 .
<Target Name="Target2">
</Target>
<Target Name="Target1" BeforeTargets="Target2">
</Target>
Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow