Sdílet prostřednictvím


Úloha MSBuild

Vytvoří MSBuild projekty z jiné MSBuild projektu.

Parametry

Následující tabulka popisuje parametry MSBuild úkolu.

Parametr

Description

BuildInParallel

Volitelný Boolean parametr.

Pokud true, projekty určené v Projects parametru jsou postaveny paralelně, pokud je to možné.Výchozí hodnota je false.

Projects

Požadované ITaskItem[] parametr.

Určuje soubory projektu, sestavení.

Properties

Volitelný String parametr.

Seznam dvojic název hodnota vlastnosti použít jako globální vlastnosti podřízeného projektu, oddělených středníkem.Zadáte-li tento parametr, je funkčně ekvivalentní k nastavení vlastností, které mají /property přepnout při sestavení s MSBuild.exe.Příklad:

Properties="Configuration=Debug;Optimize=$(Optimize)"

Při předání vlastnosti projektu až Properties parametr, MSBuild vytvoří novou instanci projektu i v případě, že již byl načten soubor projektu.Při vytvoření nové instance projektu MSBuild považuje za jiný projekt obsahující jiný globální vlastnosti, které je možné sestavit paralelně s dalšími instancemi projektu.Například verze konfigurace sestavení ve stejnou dobu jako ladící konfigurace.

RebaseOutputs

Volitelný Boolean parametr.

Pokud true, relativní cesty cíl výstupu zboží z vestavěné projekty mají jejich cesty upravena tak, aby se vzhledem k volání projektu.Výchozí hodnota je false.

RemoveProperties

Volitelný String parametr.

Určuje sadu vlastností globální odebrat.

RunEachTargetSeparately

Volitelný Boolean parametr.

Pokud true, MSBuild úloha vyvolá každý cíl v seznamu, které jsou předány do MSBuild jeden po druhém, nikoli současně.Nastavení tohoto parametru na true zaručuje, že jsou spuštěny další cíle, i v případě, že dříve vyvolané cíle se nezdařilo.Jinak by chybu sestavení zastavit vyvolání všech následných cílů.Výchozí hodnota je false.

SkipNonexistentProjects

Volitelný Boolean parametr.

Pokud true, soubory projektu, které nejsou na disku bude přeskočen.Tyto projekty, jinak dojde k chybě.

StopOnFirstFailure

Volitelný Boolean parametr.

Pokud true, je-li jeden z projektů se nepodařilo sestavit, budou vytvořeny žádné další projekty.Právě tato možnost není podporována při sestavování paralelně (s více procesory).

TargetAndPropertyListSeparators

Volitelný String[] parametr.

Určuje seznam cílů a vlastnosti jako Project metadata položky).Oddělovače budou odmítnutí před zpracováním.e.g. % 3B (řídící ";") bude zacházeno, jako by šlo odmítnutí ';'.

TargetOutputs

Volitelný ITaskItem[] jen pro čtení výstupní parametr.

Vrátí výstupy předdefinované cíle z všechny soubory projektu.Pouze výstup z cílů, které byly určeny jsou vráceny, nikoli výstupů, které mohou existovat na cíle, které tyto cíle závisí na.

TargetOutputs Parametr obsahuje také následující metadata:

  • MSBuildSourceProjectFile: Na MSBuild soubor projektu, který obsahuje cíl, nastavení výstupů.

  • MSBuildSourceTargetName: Cíl, nastavení výstupů.

PoznámkaPoznámka
Pokud chcete identifikovat výstupy z každého souboru projektu nebo cílové samostatně, spustit MSBuild úloh samostatně pro každý soubor projektu nebo cíl.Spustíte-li MSBuild úlohy pouze jednou, chcete-li vytvořit všechny soubory projektu, jsou shromažďovány výstupy všech cílů do jednoho pole.

Targets

Volitelný String parametr.

Určuje cíl nebo cíle sestavení v souborech projektu.K oddělení seznam cílových názvů, použijte středník.Pokud žádné cíle jsou specifikovány v MSBuild úkol, jsou vytvořeny výchozí cíle uvedené v souborech projektu.

PoznámkaPoznámka
Cíle musí být stejné ve všech souborech projektu.Pokud ne, dojde k chybě sestavení.

ToolsVersion

Volitelný String parametr.

Určuje, ToolsVersion při vytváření projektů předán k tomuto úkolu.

Umožňuje MSBuild úkolu, chcete-li sestavit projekt, který se zaměřuje na jinou verzi .NET Framework než uvedeným v projektu.Valid values are 2.0, 3.0 and 3.5.Výchozí hodnota je 3.5.

UnloadProjectsOnCompletion

Volitelný Boolean parametr.

Pokud true, projekt bude uvolněn, po dokončení operace.

UseResultsCache

Volitelný Boolean parametr.

Pokud true, budou vráceny výsledky uložené v mezipaměti, pokud je k dispozici.Pokud je spuštění úlohy theMSBuild, bude v mezipaměti výsledek v oboru (Makro ProjectFileName, GlobalProperties) [TargetNames]

jako seznam položek sestavení

Poznámky

Kromě výše uvedených parametrů, zdědí tento úkol parametry z TaskExtension dědí třídu, která sama Task třídy.Seznam tyto další parametry a jejich popis naleznete v tématu TaskExtension základní třída.

Na rozdíl od použití Úlohy Exec ke spuštění MSBuild.exe, tento úkol používá stejné MSBuild proces sestavení podřízených projektů.Seznam již vytvořili cíle, které mohou být přeskočeny je sdílena mezi nadřazenými a podřízenými sestavení.Tento úkol je také rychlejší, protože žádná nová MSBuild procesu.

Tento úkol může zpracovat pouze soubory projektu, ale také soubory řešení.

Konfigurace, která je vyžadována MSBuild povolení projekty, které mají sestavit současně, i v případě, že konfigurace zahrnuje vzdálený infrastruktury (například porty, protokoly, časové limity, opakování a tak dále), budou muset vynaložit lze konfigurovat pomocí konfiguračního souboru.Pokud je to možné, konfigurační položky mohly být zadán jako parametry úlohy na MSBuild úkolu.

Od začátku roku MSBuild 3.5, řešení, projekty nyní povrchu TargetOutputs ze všech dílčích projektů, sestavení.

Předávání vlastnosti pro projekty

Ve verzích MSBuild před MSBuild 3.5 předávání různých nastaví vlastnosti na různých projektech, které jsou uvedeny v MSBuild položky bylo náročné.Je-li použit atribut vlastnosti Úloha MSBuild, pak jeho nastavení byla použita pro všechny projekty jsou stavěna, pokud je dávkově Úloha MSBuild a podmíněně podle různých vlastností pro jednotlivé projekty v seznamu položek.

MSBuild3.5, však obsahuje dvě nové vyhrazená metadata položky vlastnosti a AdditionalProperties, které poskytují flexibilní způsob, jak předat jiné vlastnosti různé projekty je sestavena pomocí Úloha MSBuild.

[!POZNÁMKA]

Tyto nové položky metadat se vztahují pouze na položky, které jsou předány v atributu projekty Úloha MSBuild.

Výhod víceprocesorových sestavení

Jeden z největších výhod použití tato nová metadata dochází při vytváření projektu současně v systému s více procesory.Metadata umožňuje konsolidovat všechny projekty do jednoho Úloha MSBuild volání bez nutnosti provádět jakékoli dávkování nebo podmíněné MSBuild úkoly.A když zavoláte pouze jediný Úloha MSBuild, všechny projekty, které jsou uvedeny v atributu projekty budou postaveny paralelně.(Pouze však, pokud BuildInParallel=true atribut je obsažen v Úloha MSBuild.) Další informace naleznete v tématu Paralelní sestavování více projektů současně pomocí nástroje MSBuild.

Vlastnosti metadat

Běžným scénářem je při vytváření více souborů řešení pomocí Úloha MSBuild, pouze pomocí konfigurace různých sestavení.Můžete chtít vytvořit řešení a1 a2 Konfigurace a řešení ladění pomocí pomocí konfigurace Release.V MSBuild 2.0, tento soubor projektu by vypadat takto:

[!POZNÁMKA]

V následujícím příkladu (...) představuje soubory další řešení.

z7f65y0d.collapse_all(cs-cz,VS.110).gifa.proj

<Project xmlns="https://schemas.microsoft.com/developer/msbuild/2003">
    <Target Name="Build">
        <MSBuild Projects="a1.sln..." Properties="Configuration=Debug"/>
        <MSBuild Projects="a2.sln" Properties="Configuration=Release"/>
    </Target>
</Project>

Pomocí metadat vlastnosti však můžete zjednodušit to použít jedinou Úloha MSBuild, jak je znázorněno v následující:

z7f65y0d.collapse_all(cs-cz,VS.110).gifa.proj

<Project xmlns="https://schemas.microsoft.com/developer/msbuild/2003">
    <ItemGroup>
        <ProjectToBuild Include="a1.sln…">
            <Properties>Configuration=Debug</Properties>
        </ProjectToBuild>
        <ProjectToBuild Include="a2.sln">
            <Properties>Configuration=Release</Properties>
        </ProjectToBuild>
    </ItemGroup>
    <Target Name="Build">
        <MSBuild Projects="@(ProjectToBuild)"/>
    </Target>
</Project>

-nebo-

<Project xmlns="https://schemas.microsoft.com/developer/msbuild/2003">
    <ItemGroup>
        <ProjectToBuild Include="a1.sln…"/>
        <ProjectToBuild Include="a2.sln">
            <Properties>Configuration=Release</Properties>
        </ProjectToBuild>
    </ItemGroup>
    <Target Name="Build">
        <MSBuild Projects="@(ProjectToBuild)" 
          Properties="Configuration=Debug"/>
    </Target>
</Project>

AdditionalProperties metadat

Zvažte následující scénář, kde jsou dva soubory řešení pomocí sestavení Úloha MSBuild, jak pomocí konfigurace Release, ale jeden pomocí architektury x 86 a jiné použití architektury ia64.V MSBuild 2.0, budete muset vytvořit více instancí Úloha MSBuild: jeden pro vytvoření projektu pomocí konfigurace verze x 86 architektury, druhý pomocí konfigurace verze s architekturou ia64.Soubor projektu by vypadat takto:

z7f65y0d.collapse_all(cs-cz,VS.110).gifa.proj

<Project xmlns="https://schemas.microsoft.com/developer/msbuild/2003">
    <Target Name="Build">
        <MSBuild Projects="a1.sln…" Properties="Configuration=Release; 
          Architecture=x86"/>
        <MSBuild Projects="a2.sln" Properties="Configuration=Release; 
          Architecture=ia64"/>
    </Target>
</Project>

Pomocí AdditionalProperties, můžete zjednodušit to použít jedinou Úloha MSBuild pomocí následující:

z7f65y0d.collapse_all(cs-cz,VS.110).gifa.proj

<Project xmlns="https://schemas.microsoft.com/developer/msbuild/2003">
    <ItemGroup>
        <ProjectToBuild Include="a1.sln…">
            <AdditionalProperties>Architecture=x86
              </AdditionalProperties>
        </ProjectToBuild>
        <ProjectToBuild Include="a2.sln">
            <AdditionalProperties>Architecture=ia64
              </AdditionalProperties>
        </ProjectToBuild>
    </ItemGroup>
    <Target Name="Build">
        <MSBuild Projects="@(ProjectToBuild)" 
          Properties="Configuration=Release"/>
    </Target>
</Project>

Příklad

Následující příklad používá MSBuild úkol sestavit projekty určené ProjectReferences položka kolekce.Výsledný cílový výstup, jsou uloženy v AssembliesBuiltByChildProjects položka kolekce.

<Project xmlns="https://schemas.microsoft.com/developer/msbuild/2003">

    <ItemGroup>
        <ProjectReferences Include="*.*proj" />
    </ItemGroup>

    <Target Name="BuildOtherProjects">
        <MSBuild
            Projects="@(ProjectReferences)"
            Targets="Build">
            <Output
                TaskParameter="TargetOutputs"
                ItemName="AssembliesBuiltByChildProjects" />
        </MSBuild>
    </Target>

</Project>

Viz také

Koncepty

Nástroj MSBuild úkoly

Další zdroje

Úloha MSBuild odkaz