대상 일괄 처리의 항목 메타데이터Item Metadata in Target Batching

MSBuildMSBuild에는 빌드 대상의 입력 및 출력에 대한 종속성 분석을 수행하는 기능이 있습니다. has the ability to perform dependency analysis on the inputs and outputs of a build target. 대상의 입력 또는 출력이 최신 상태인지를 확인한 경우 대상을 건너뛰고 빌드를 계속합니다.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 procede. Target 요소는 InputsOutputs 특성을 사용하여 종속성을 분석하는 동안 검사할 항목을 지정합니다.Target elements use the Inputs and Outputs attributes to specify the items to inspect during dependency analysis.

대상이 일괄 처리 항목을 사용하는 작업을 입력 또는 출력으로 포함하는 경우 대상의 Target 요소는 해당 Inputs 또는 Outputs 특성에서 일괄 처리를 사용하여 MSBuildMSBuild가 이미 최신 상태인 항목의 일괄 처리를 건너뛰도록 해야 합니다.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.

대상 일괄 처리Batching Targets

다음 예제에는 Culture 항목 메타데이터를 기반으로 하는 두 개의 일괄 처리로 나뉜 Res라는 항목 목록이 포함됩니다.The following example contains an item list named Res that is divided into two batches based on the Culture item metadata. 이러한 일괄 처리는 각각 AL 작업에 전달됩니다. 여기서는 각 일괄 처리에 대한 출력 어셈블리를 만듭니다.Each of these batches is passed into the AL task, which creates an output assembly for each batch. MSBuildMSBuildTarget 요소의 Outputs 특성에서 일괄 처리를 사용하여 대상을 실행하기 전에 개별 일괄 처리 각각이 최신 상태인지 확인할 수 있습니다.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. 대상 일괄 처리를 사용하지 않고 항목이 실행될 때마다 작업에서 항목의 두 일괄 처리를 실행합니다.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>  

참고 항목See Also

방법: 증분 빌드 How to: Build Incrementally
일괄 처리 Batching
Target 요소(MSBuild) Target Element (MSBuild)
작업 일괄 처리의 항목 메타데이터Item Metadata in Task Batching