Sdílet prostřednictvím


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>