Métadonnées d’élément dans le traitement par lots des ciblesItem metadata in target batching

MSBuildMSBuild a la capacité d’effectuer une analyse des dépendances sur les entrées et les sorties d’une cible de génération. has the ability to perform dependency analysis on the inputs and outputs of a build target. S’il est déterminé que les entrées ou les sorties de la cible sont à jour, la cible est ignorée et la génération a lieu.If it is determined that the inputs or outputs of the target are up-to-date, the target will be skipped and the build will proceed. Les éléments Target utilisent les attributs Inputs et Outputs pour spécifier les éléments à inspecter pendant l’analyse des dépendances.Target elements use the Inputs and Outputs attributes to specify the items to inspect during dependency analysis.

Si une cible contient une tâche qui utilise des éléments traités par lots comme entrées ou sorties, l’élément Target de la cible doit utiliser le traitement par lots dans ses attributs Inputs ou Outputs pour permettre à MSBuildMSBuild d’ignorer les lots d’éléments qui sont déjà à jour.If a target contains a task that uses batched items as inputs or outputs, the Target element of the target should use batching in its Inputs or Outputs attributes to enable MSBuildMSBuild to skip batches of items that are already up-to-date.

Traiter des cibles par lotsBatch targets

L’exemple suivant contient une liste d’éléments nommée Res qui est divisée en deux lots, selon les métadonnées de l’élément Culture.The following example contains an item list named Res that is divided into two batches based on the Culture item metadata. Chacun de ces lots est passé à la tâche AL, qui crée un assembly de sortie pour chaque lot.Each of these batches is passed into the AL task, which creates an output assembly for each batch. L’utilisation du traitement par lot sur l’attribut Outputs de l’élément Target permet à MSBuildMSBuild de déterminer si chaque lot est à jour avant d’exécuter la cible.By using batching on the Outputs attribute of the Target element, MSBuildMSBuild can determine if each of the individual batches is up-to-date before running the target. Si vous n’utilisez pas le traitement par lot des cibles, les deux lots d’éléments sont exécutés par la tâche chaque fois que la cible est exécutée.Without using target batching, both batches of items would be run by the task every time the target was executed.

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

    </Target>  

</Project>  

Voir aussiSee also

Guide pratique pour effectuer des builds incrémentielles How to: Build incrementally
Traitement par lot MSBuild Batching
Target, élément (MSBuild) Target element (MSBuild)
Métadonnées d’élément dans le traitement par lots des tâchesItem metadata in task batching