Práce s metadaty položek v cílových dávkách
Nástroj MSBuild má schopnost provádět analýzu závislostí na vstupech a výstupech cíle sestavení. Pokud se zjistí, že vstupy nebo výstupy cíle jsou aktuální, cíl se přeskočí a sestavení bude pokračovat. Target
elementy používají Inputs
atributy a Outputs
určují položky, které se mají zkontrolovat během analýzy závislostí.
Pokud cíl obsahuje úlohu, která jako vstupy nebo výstupy používá dávkové položky, Target
měl by prvek cíle použít dávkování v jeho Inputs
nebo Outputs
atributech, aby nástroj MSBuild mohl přeskočit dávky položek, které jsou již aktuální.
Cíle služby Batch
Následující příklad obsahuje seznam položek s názvem Res
, který je rozdělen do dvou dávek na Culture
základě metadat položky. Každá z těchto dávek se předává do AL
úlohy, která vytvoří výstupní sestavení pro každou dávku. Pomocí dávkování u Outputs
atributu elementu Target
může nástroj MSBuild určit, jestli jsou jednotlivé dávky aktuální před spuštěním cíle. Bez použití cílových dávek by se obě dávky položek spouštěly úlohou při každém spuštění cíle.
<Project
xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Res Include="Strings.fr.resources">
<Culture>fr</Culture>
</Res>
<Res Include="Strings.jp.resources">
<Culture>jp</Culture>
</Res>
<Res Include="Menus.fr.resources">
<Culture>fr</Culture>
</Res>
<Res Include="Dialogs.fr.resources">
<Culture>fr</Culture>
</Res>
<Res Include="Dialogs.jp.resources">
<Culture>jp</Culture>
</Res>
<Res Include="Menus.jp.resources">
<Culture>jp</Culture>
</Res>
</ItemGroup>
<Target Name="Build"
Inputs="@(Res)"
Outputs="%(Culture)\MyApp.resources.dll">
<AL Resources="@(Res)"
TargetType="library"
OutputAssembly="%(Culture)\MyApp.resources.dll">
</AL>
</Target>
</Project>