ターゲットのバッチの項目メタデータ

Visual Studio 2017 RC の最新のドキュメントの詳細については、Visual Studio 2017 RC ドキュメントをご参照ください。

MSBuild には、ビルド ターゲットの入力および出力で依存関係の分析を行う機能が用意されています。 ターゲットの入力または出力が最新であると判断された場合、ターゲットはスキップされ、ビルドが続行されます。 Target 要素は Inputs および Outputs 属性を使用して、依存関係の分析中に検査する項目を指定します。

ターゲットにバッチされた項目を入力または出力として使用するタスクが含まれている場合、ターゲットの Target 要素は、その Inputs または Outputs 属性でバッチを使用して、MSBuild を有効にし、既に最新になっている項目のバッチをスキップする必要があります。

ターゲットのバッチ

次の例には、Res という名前の項目のリストが含まれています。これは、Culture 項目メタデータに基づいて、2 つのバッチに分割されています。 これらのバッチはそれぞれ、AL タスクに渡されます。このタスクは、各バッチの出力アセンブリを作成します。 Target 要素の Outputs 属性でバッチを使用することにより、MSBuild はターゲットを実行する前に、各バッチが最新かどうかを確認できます。 ターゲットのバッチを使用しないと、項目の両方のバッチは、ターゲットが実行されるたびにタスクによって実行されます。

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

参照

方法 : インクリメンタル ビルドを実行する
バッチ
Target 要素 (MSBuild)
タスクのバッチの項目メタデータ