Cíl sestavení objednávky
Cíle musí být objednáno, je-li vstup na jeden cíl závisí na výstupu jiný cíl.Chcete-li určit pořadí, ve kterém jsou spuštěny cíle můžete použít tyto atributy:
InitialTargets.To Project atribut určuje cíle, které bude spuštěn jako první, a to i v případě, že cíle jsou specifikovány v příkazovém řádku nebo v DefaultTargets atribut.
DefaultTargets.To Project atttribute Určuje, jaké cíle jsou spouštěny Pokud cíl není explicitně zadán na příkazovém řádku.
DependsOnTargets.To Target atribut určuje cíle, které musí spustit před spuštěním tohoto cíle.
BeforeTargets a AfterTargets.Tyto Target atributy určují, že tento cíl má být spuštěna před nebo po zadaném cíle (MSBuild 4.0).
Cíl není nikdy spuštěno dvakrát během sestavení, i v případě, že na něm závisí další cíl v sestavení.Po spuštění cílového dokončení svého příspěvku k sestavení.
Cíle mohou mít Condition atribut.Pokud je zadaná podmínka vyhodnocena jako false, cíl nebude provedena a nemá žádný vliv na sestavení.Další informace o podmínkách naleznete v tématu Nástroj MSBuild podmínky.
Počáteční cíle
InitialTargets Atribut projektu element určuje cíle, které bude spuštěn jako první, a to i v případě, že cíle jsou specifikovány v příkazovém řádku nebo v DefaultTargets atribut.Počáteční cíle se obvykle používají pro kontrolu chyb.
Hodnota InitialTargets atribut může být oddělený středníkem, uspořádaný seznam cílů.Následující příklad určuje, že Warm cíl spustí a pak Eject cíl spustí.
<Project InitialTargets="Warm;Eject" xmlns="https://schemas.microsoft.com/developer/msbuild/2003">
Importované projekty mohou mít své vlastní InitialTargets atributy.Všechny počáteční cíle jsou seskupeny dohromady a spustit v pořadí.
Další informace naleznete v tématu Jak: Určete, které cíl nejprve sestavení.
Výchozí cíle
DefaultTargets Atribut projektu prvek určuje, jaké cíle nebo cílů jsou postaveny Pokud cíl není explicitně zadána v příkazovém řádku.
Hodnota DefaultTargets atribut může být oddělený středníkem, uspořádaný seznam cílů výchozí.Následující příklad určuje, že Clean cíl spustí a pak Build cíl spustí.
<Project DefaultTargets="Clean;Build" xmlns="https://schemas.microsoft.com/developer/msbuild/2003">
Můžete přepsat výchozí cíle pomocí /target přepnout na příkazovém řádku.Následující příklad určuje, že Build cíl spustí a pak Report cíl spustí.Při určování cíle tímto způsobem jsou ignorovány všechny výchozí cíle.
msbuild /target:Build;Report
Je-li zadána počáteční cíle a výchozí cíle a pokud nejsou zadány žádné cíle příkazového řádku MSBuild nejprve spustí počáteční cíle a potom spustí výchozí cíle.
Importované projekty mohou mít své vlastní DefaultTargets atributy.První DefaultTargets byl zjištěn atribut určuje výchozí cíle poběží.
Další informace naleznete v tématu Jak: Určete, které cíl nejprve sestavení.
První cíl
Pokud se žádné počáteční cíle, výchozí cíle nebo cílů příkazového řádku, poté spustí nástroj MSBuild prvního cíle narazí v souboru projektu nebo jakýkoli projekt, importované soubory.
Cíl závislosti
Cíle lze popsat vztahy závislosti mezi sebou.DependsOnTargets Atribut označuje, že cíl závisí na jiných cílů.Příklad:
<Target Name="Serve" DependsOnTargets="Chop;Cook" />
dává pokyn pro MSBuild, Serve cíl závisí na Chop cíl a Cook cíl.Spustí nástroj MSBuild Chop cíl a spustí Cook cíl před spuštěním Serve cíl.
Před cílů a cílů
Nástroj MSBuild 4.0 můžete určit pořadí cíle pomocí BeforeTargets a AfterTargets atributy.
Zvažte následující skript.
<Project DefaultTargets="Compile;Link" xmlns="https://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="Compile">
<Message Text="Compiling" />
</Target>
<Target Name="Link">
<Message Text="Linking" />
</Target>
</Project>
Chcete-li vytvořit dílčí cíle Optimize , která se spouští Compile cíl, ale předtím, než Link cílové, přidat následující cíl kdekoli v Project prvku.
<Target Name="Optimize"
AfterTargets="Compile" BeforeTargets="Link">
<Message Text="Optimizing" />
</Target>
Určení pořadí sestavení cíle
Nástroj MSBuild určuje pořadí sestavení cíl takto:
InitialTargetscíle jsou spuštěny.
Cíle, které jsou zadané na příkazovém řádku pomocí /target přepínače pracují.Zadáte-li žádné cíle v příkazovém řádku pak bude DefaultTargets cíle jsou spuštěny.Pokud ani jedna z nich je k dispozici, došlo k první cíl spustit.
Condition Atribut cíle je vyhodnocen.Pokud Condition atribut je k dispozici a je vyhodnocen jako false, cíl nebude provedena a nemá žádný další vliv na sestavení.
Před provedením cíl, jeho DependsOnTargets cíle jsou spuštěny.
Před provedením cíl, žádné cíle, uvádí v BeforeTargets spustit atribut.
Před provedením cíl, jeho Inputs atribut a Outputs atributu jsou porovnány.Pokud nástroj MSBuild zjistí, že všechny výstupní soubory jsou zastaralé s ohledem na odpovídající vstupní soubor nebo soubory a poté spustí nástroj MSBuild cíl.Jinak MSBuild vynechává cíl.
Po cíl je proveden nebo vynechány, cíle, které jsou uvedeny v AfterTargets spustit atribut.