Metadatos de elementos en procesamiento por lotes de destinos

MSBuild puede realizar análisis de dependencias de las entradas y los resultados de un destino de compilación.Si se determina que las entradas o las salidas del destino están actualizadas, el destino se omite y la compilación continúa.Los elementos Target utilizan los atributos Inputs y Outputs para especificar los elementos que se deben inspeccionar durante el análisis de dependencias.

Si un destino contiene una tarea que usa elementos procesados por lotes como entradas o resultados, el elemento Target del destino deberá utilizar el procesamiento por lotes en sus atributos Inputs o Outputs para permitir que MSBuild omita los lotes de elementos que ya estén actualizados.

Procesar destinos por lotes

El ejemplo siguiente contiene una lista de elementos denominada Res que se divide en dos lotes basándose en los metadatos de los elementos Culture.Cada uno de estos lotes se pasa a la tarea AL, que crea un ensamblado de salida para cada lote.Mediante el procesamiento por lotes en el atributo Outputs del elemento Target, MSBuild puede determinar si cada lote individual está actualizado antes de ejecutar el destino.Si no se utiliza el procesamiento por lotes de destinos, la tarea ejecuta ambos lotes de elementos cada vez que se ejecute el destino.

<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>

Vea también

Tareas

Cómo: Compilar versiones incrementalmente

Referencia

Elemento Target (MSBuild)

Conceptos

Procesamiento por lotes de MSBuild

Metadatos de elementos en el procesamiento por lotes de tareas