úlohy nástroje MSBuild

Platforma sestavení potřebuje možnost spustit libovolný počet akcí během procesu sestavení. Nástroj MSBuild používá úkoly k provedení těchto akcí. Úloha je jednotka spustitelného kódu, kterou používá MSBuild k provádění atomických operací sestavení.

Logika úlohy

Formát souboru projektu MSBuild XML nemůže plně provádět vlastní operace sestavení, takže logika úlohy musí být implementována mimo soubor projektu.

Logika spuštění úkolu je implementována jako třída .NET, která implementuje ITask rozhraní, které je definováno v Microsoft.Build.Framework oboru názvů.

Třída Task také definuje vstupní a výstupní parametry, které jsou k dispozici pro úkol v souboru projektu. Všechny veřejné nestatické nestatické vlastnosti, které jsou vystavené třídou Task, mohou být předány hodnoty v souboru projektu umístěním odpovídajícího atributu se stejným názvem na element Task a nastavením jeho hodnoty, jak je uvedeno v příkladech dále v tomto článku.

Vlastní úlohu můžete napsat vytvářením spravované třídy, která implementuje ITask rozhraní. Další informace najdete v tématu psaní úloh.

Spustit úlohu ze souboru projektu

Před spuštěním úlohy v souboru projektu je nutné nejprve namapovat typ v sestavení, které implementuje úlohu, na název úlohy pomocí elementu UsingTask . To umožňuje nástroji MSBuild zjistit, kde se má při hledání v souboru projektu vyhledat logiku provádění úlohy.

Chcete-li spustit úlohu v souboru projektu MSBuild, vytvořte prvek s názvem úkolu jako podřízený Target prvek elementu. Pokud úkol akceptuje parametry, jsou předány jako atributy elementu.

Seznamy a vlastnosti položek 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 mohou také vracet informace do souboru projektu, které mohou být uloženy 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 vlastnosti Output v SuccessfullyCopiedFiles seznamu položek.

<Target Name="CopyFiles">
    <Copy
        SourceFiles="@(MySourceFiles)"
        DestinationFolder="@(MyDestFolder)">
        <Output
            TaskParameter="CopiedFiles"
            ItemName="SuccessfullyCopiedFiles"/>
     </Copy>
</Target>

Zahrnuté úlohy

Nástroj MSBuild se dodává s mnoha úlohami, jako je například kopírování, který kopíruje soubory, MakeDir –, které vytvářejí adresáře a CSC, který kompiluje soubory zdrojového kódu jazyka C#. Úplný seznam dostupných úloh a informací o využití najdete v tématu s odkazem na úlohu.

Přepsané úlohy

Nástroj MSBuild vyhledává úlohy v několika umístěních. První umístění se nachází v souborech s příponou . OverrideTasks uložené v adresářích .NET Framework. Úkoly v těchto souborech přepíšou všechny další úlohy se stejnými názvy, včetně úkolů v souboru projektu. Druhé umístění se nachází v souborech s příponou . Úlohy v adresářích .NET Framework. Pokud úloha není v některém z těchto umístění nalezena, je použita úloha v souboru projektu.

Viz také