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.