Sdílet prostřednictvím


Nástroj MSBuild dávkování

MSBuildmá schopnost rozdělit do různých kategorií nebo listy, položky seznamů založených na metadata položky a spustit cílové nebo úkol jednou s každou dávkou.

Dávkové úlohy

Dávkové úlohy umožňuje zjednodušit soubory projektu můžete rozdělit do různých listech položky seznamů a předat každé partie úkol samostatně.To znamená, že soubor projektu pouze musí mít úkol a jeho atributy deklarované jednou, přestože jej lze spustit několikrát.

Určíte, že chcete MSBuild provést pomocí dávkové úlohy s %(ItemMetaDataName) v jednom úkolu atributů notation.Následující příklad rozdělí Example seznam položek do dávek na základě Color hodnota metadata položky a průchody šarží k MyTask úkol samostatně.

[!POZNÁMKA]

Pokud není odkaz seznam zboží jinde v úkolu atributy nebo může být dvojznačný název metadat, lze použít %(ItemCollection.ItemMetaDataName) zápis plně vymezující hodnotu položky metadat pro dávkování.

<Project
    xmlns="https://schemas.microsoft.com/developer/msbuild/2003">
    
    <ItemGroup>
        <Example Include="Item1">
            <Color>Blue</Color>
        </Example>
        <Example Include="Item2">
            <Color>Red</Color>
        </Example>
    </ItemGroup>

    <Target Name="RunMyTask">
        <MyTask
            Sources = "@(Example)"
            Output = "%(Color)\MyFile.txt"/>
    </Target>

</Project>

Konkrétní příklady dávkování, viz Metadata položky v dávkové úlohy.

Cíl dávkování

MSBuildkontroluje, pokud vstupů a výstupů cíle jsou aktuální před spuštěním cíl.Jestliže vstupy a výstupy jsou aktuální, cíl je přeskočeno.Pokud úkol uvnitř cíl používá dávkování, MSBuild potřebuje zjistit, zda je aktuální vstupů a výstupů pro každou dávku zboží.Cíl jinak spuštěn pokaždé, když je přístupů.

Ukazuje následující příklad Target prvek obsahující Outputs atributu s %(ItemMetaDataName) zápis.MSBuildrozdělí Example seznam položek do dávek na základě Color položka metadat a analyzovat časová výstupní soubory pro každou šarži.Pokud nejsou aktuální výstupy z dávky, cíl je spuštěna.Jinak je přeskočeno cíl.

<Project
    xmlns="https://schemas.microsoft.com/developer/msbuild/2003">
    
    <ItemGroup>
        <Example Include="Item1">
            <Color>Blue</Color>
        </Example>
        <Example Include="Item2">
            <Color>Red</Color>
        </Example>
    </ItemGroup>

    <Target Name="RunMyTask"
        Inputs="@(Example)"
        Outputs="%(Color)\MyFile.txt">
        <MyTask
            Sources = "@(Example)"
            Output = "%(Color)\MyFile.txt"/>
    </Target>

</Project>

Další příklad cílové dávkování viz Metadata položky v cílové dávkování.

Vlastnost funkcí pomocí metadat

Dávky lze ovládat funkce vlastnosti, které obsahují metadata.Příklad:

$([System.IO.Path]::Combine($(RootPath),%(Compile.Identity)))

používá Combine kombinovat kořenové složky cestu položky kompilace.

Vlastnosti funkce nemusí být v rámci hodnoty metadat.Příklad:

%(Compile.FullPath.Substring(0,3))

není povoleno.

Další informace o vlastnosti funkcí naleznete v Vlastnost funkce.

Viz také

Referenční dokumentace

Prvek ItemMetadata (MSBuild)

Další zdroje

Nástroj MSBuild koncepty

Nástroj MSBuild odkaz

Nástroj MSBuild pokročilé koncepty