Aracılığıyla paylaş


Hedef toplu işlemde öğe meta verileriyle çalışma

MSBuild, derleme hedefinin giriş ve çıkışlarında bağımlılık analizi gerçekleştirebilir. Hedefin girişlerinin veya çıkışlarının güncel olduğu belirlenirse hedef atlanır ve derleme devam eder. Targetöğeleri, bağımlılık analizi sırasında denetlenecek öğeleri belirtmek için ve Outputs özniteliklerini kullanırInputs.

Hedef, giriş veya çıkış olarak toplu öğeler kullanan bir görev içeriyorsa, Target hedef öğesi msbuild'in Inputs zaten güncel olan öğe toplu işlemlerini atlamasını sağlamak için veya Outputs özniteliklerinde toplu işlem kullanmalıdır.

Batch hedefleri

Aşağıdaki örnek, öğe meta verilerine göre Culture iki toplu işleme ayrılmış adlı Res bir öğe listesi içerir. Bu toplu işlerden her biri göreve geçirilir AL ve bu da her toplu iş için bir çıkış derlemesi oluşturur. MSBuild, öğesinin OutputsTarget özniteliğinde toplu işlem kullanarak, hedefi çalıştırmadan önce tek tek toplu işlerden her birinin güncel olup olmadığını belirleyebilir. Hedef toplu işlem kullanılmadan, hedef her yürütülürken her iki öğe toplu işlemi de görev tarafından çalıştırılır.

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

    </Target>

</Project>