úlohy nástroje MSBuild
Platforma sestavení potřebuje možnost provádět během procesu sestavení libovolný počet akcí. Nástroj MSBuild používá k provedení těchto akcí úlohy . Úloha je jednotka spustitelného kódu používaného nástrojem MSBuild k provádění atomických operací sestavení.
Logika úloh
Formát souboru projektu XML nástroje MSBuild nemůže plně spouštět operace sestavení samostatně, takže logika úkolu musí být implementována mimo soubor projektu.
Logika provádění úlohy je implementována jako třída .NET, která implementuje ITask rozhraní, které je definováno Microsoft.Build.Framework v oboru názvů.
Třída úkolu také definuje vstupní a výstupní parametry, které jsou k dispozici pro úkol v souboru projektu. Všechny veřejné settable non-static non-abstraktní vlastnosti vystavené třídou úkolu mohou být dány hodnoty v souboru projektu umístěním odpovídajícího atributu se stejným názvem do elementu Task a nastavením jeho hodnoty, jak je znázorněno v příkladech dále v tomto článku.
Vlastní úlohu můžete napsat vytvořením spravované třídy, která implementuje ITask rozhraní. Další informace naleznete v tématu Psaní úkolů.
Spuštění úkolu ze souboru projektu
Před spuštěním úkolu v souboru projektu musíte nejprve namapovat typ v sestavení, které implementuje úkol na název úkolu pomocí elementu UsingTask . Nástroj MSBuild tak zjistí, kde hledat logiku provádění úkolu, když ji najde v souboru projektu.
Chcete-li spustit úkol v souboru projektu MSBuild, vytvořte prvek s názvem úkolu jako podřízený prvek Target
. Pokud úkol přijímá parametry, jsou předány jako atributy elementu.
Seznamy a vlastnosti položek nástroje MSBuild lze použít jako parametry. Například následující kód volá MakeDir
úlohu a nastaví hodnotu Directories
vlastnosti MakeDir
objektu, která se rovná hodnotě BuildDir
vlastnosti:
<Target Name="MakeBuildDirectory">
<MakeDir
Directories="$(BuildDir)" />
</Target>
Úkoly můžou také vracet informace do souboru projektu, které lze uložit v položkách nebo vlastnostech pro pozdější použití. Například následující kód volá Copy
úlohu a ukládá informace z CopiedFiles
výstupní vlastnosti v SuccessfullyCopiedFiles
seznamu položek.
<Target Name="CopyFiles">
<Copy
SourceFiles="@(MySourceFiles)"
DestinationFolder="@(MyDestFolder)">
<Output
TaskParameter="CopiedFiles"
ItemName="SuccessfullyCopiedFiles"/>
</Copy>
</Target>
Zahrnuté úkoly
NÁSTROJ MSBuild se dodává s mnoha úlohami, jako je copy, která kopíruje soubory, MakeDir, který vytváří adresáře a Csc, které kompiluje soubory zdrojového kódu jazyka C#. Úplný seznam dostupných úkolů a informací o využití najdete v referenčních informacích k úkolům.
Přepsané úkoly
Nástroj MSBuild hledá úlohy v několika umístěních. První umístění je v souborech s příponou .OverrideTasks
uloženou v adresáři MSBuild. Úkoly v těchto souborech přepíší všechny ostatní úkoly se stejnými názvy, včetně úkolů v souboru projektu. Druhé umístění je v souboru projektu a jeho importu. Pokud úkol není definován v projektu, bude vyhledána ve výchozích úkolech nástroje MSBuild, které jsou definovány v .tasks
souboru v adresáři MSBuild.