ú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.