Metadados de item em lotes de destino

MSBuildtem a capacidade de executar análises de dependência sobre as entradas e saídas de um destino de compilação. Se for determinado que as entradas ou saídas do destino estejam atualizadas, o destino será ignorado e a compilação irá prosseguir. Targetelementos de usar o Inputs e Outputs atributos para especificar os itens para inspecionar durante a análise de dependência.

Se um destino contém uma tarefa que usa o lote de itens como entradas ou saídas, o Target o elemento de destino deve usar o processamento em lotes no seu Inputs ou Outputs atributos para habilitar MSBuild para ignorar os lotes de itens que já estão atualizados.

Destinos de processamento em lotes

O exemplo a seguir contém uma lista de itens chamada Res que é dividido em dois lotes com base na Culture metadados de item. Cada um desses lotes é passada para o AL a tarefa, que cria um assembly de saída para cada lote. Usando o processamento em lotes na Outputs atributo o Target elemento, MSBuild pode determinar se cada um dos lotes individuais é atualizada antes de executar o destino. Sem o processamento em lotes de destino, ambos os lotes de itens seriam executados pela tarefa sempre que o destino foi executado.

<Project
    xmlns="https://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"

    </Target>

</Project>

Consulte também

Tarefas

How to: Aumentar incrementalmente

Referência

Elemento de destino (MSBuild)

Conceitos

Processamento em lotes do MSBuild

Metadados de item em lotes de tarefa