Udostępnij za pośrednictwem


Metadane elementu w przetwarzaniu wsadowym zadań

MSBuildma możliwość dzielenia list elementów na różnych kategorii lub serii, na podstawie metadanych elementu i uruchomić zadanie jeden raz z każdej partii.Może być mylące zrozumieć dokładnie z partii, które są były przekazywane elementy.W tym temacie opisano następujące typowe scenariusze, które obejmują tworzenie pakietów wsadowych.

  • Podzielenie lista elementów w partii

  • Podzielenie kilka list przedmiotów w partii

  • Tworzenie pakietów wsadowych jeden element naraz

  • Filtrowanie listy elementów

Aby uzyskać więcej informacji na temat plików wsadowych z MSBuild, zobacz Przetwarzanie wsadowe w programie MSBuild.

Podzielenie lista elementów w partii

Wsadowe pobieranie umożliwia podzielenie lista elementów na różnych partii na podstawie metadanych elementu i przechodzą z każdej partii w zadanie oddzielnie.Jest to przydatne do tworzenia zestawów satelitarnej.

Poniższy przykład pokazuje, jak podzielić lista elementów do partii na podstawie metadanych elementu.ExampColl Element listy jest podzielony na trzy partie oparte na Number element metadanych.Obecność %(ExampColl.Number)w Text powiadamia atrybutu MSBuild że tworzenie pakietów wsadowych powinna być wykonana.ExampColl Element listy jest podzielony na trzy partie oparte na Number metadanych i każdej partii jest przekazywana odrębnie do zadania.

<Project
    xmlns="https://schemas.microsoft.com/developer/msbuild/2003">
    
    <ItemGroup>
        <ExampColl Include="Item1">
            <Number>1</Number>
        </ExampColl>
        <ExampColl Include="Item2">
            <Number>2</Number>
        </ExampColl>
        <ExampColl Include="Item3">
            <Number>3</Number>
        </ExampColl>
        <ExampColl Include="Item4">
            <Number>1</Number>
        </ExampColl>
        <ExampColl Include="Item5">
            <Number>2</Number>
        </ExampColl>
        <ExampColl Include="Item6">
            <Number>3</Number>
        </ExampColl>
    </ItemGroup>

    <Target Name="ShowMessage">
        <Message
            Text = "Number: %(ExampColl.Number) -- Items in ExampColl: @(ExampColl)"/>
    </Target>

</Project>

Komunikat — Zadanie Zadań wyświetla następujące informacje:

Number: 1 -- Items in ExampColl: Item1;Item4

Number: 2 -- Items in ExampColl: Item2;Item5

Number: 3 -- Items in ExampColl: Item3;Item6

Podzielenie kilka elementu listy w partii

MSBuildmożna podzielić wiele list elementów partii na podstawie tych samych metadanych.Dzięki temu łatwo podzielić inny element listy partii do tworzenia wielu zestawów.Na przykład może mieć listy plików CS podzielona instancję aplikacji i partii zestawu i lista elementów podzielona instancję aplikacji i partii zestawu plików zasobów.Tworzenie pakietów wsadowych można następnie użyć do przekazania tych list elementów do jednego zadania i zbudować zarówno w aplikacji, jak i w zestawie.

[!UWAGA]

Jeśli lista elementów były przekazywane do zadania zawiera żadnych elementów z metadanymi, do którego istnieje odwołanie, każdej pozycji listy tego towaru jest przekazywana do każdej partii.

Poniższy przykład pokazuje, jak podzielić wielu elementu listy do partii na podstawie metadanych elementu.ExampColl i ExampColl2 każdy element listy są podzielone na trzy partie oparte na Number element metadanych.Obecność %(Number)w Text powiadamia atrybutu MSBuild że tworzenie pakietów wsadowych powinna być wykonana.ExampColl i ExampColl2 list elementów są podzielone na trzy partie oparte na Number metadanych i każdej partii jest przekazywana odrębnie do zadania.

<Project
    xmlns="https://schemas.microsoft.com/developer/msbuild/2003">
    
    <ItemGroup>

        <ExampColl Include="Item1">
            <Number>1</Number>
        </ExampColl>
        <ExampColl Include="Item2">
            <Number>2</Number>
        </ExampColl>
        <ExampColl Include="Item3">
            <Number>3</Number>
        </ExampColl>

        <ExampColl2 Include="Item4">
            <Number>1</Number>
        </ExampColl2>
        <ExampColl2 Include="Item5">
            <Number>2</Number>
        </ExampColl2>
        <ExampColl2 Include="Item6">
            <Number>3</Number>
        </ExampColl2>

    </ItemGroup>

    <Target Name="ShowMessage">
        <Message
            Text = "Number: %(Number) -- Items in ExampColl: @(ExampColl) ExampColl2: @(ExampColl2)"/>
    </Target>

</Project>

Komunikat — Zadanie Zadań wyświetla następujące informacje:

Number: 1 -- Items in ExampColl: Item1 ExampColl2: Item4

Number: 2 -- Items in ExampColl: Item2 ExampColl2: Item5

Number: 3 -- Items in ExampColl: Item3 ExampColl2: Item6

Tworzenie pakietów wsadowych jeden element naraz

Tworzenie pakietów wsadowych mogą być wykonane na dobrze znanych element metadanych, przypisany do każdego elementu po utworzeniu.Gwarantuje to, że każdy element w kolekcji będzie niektóre metadane użycie do dozowania.Identity Wartość metadanych jest unikatowy dla każdego zapasu i jest przydatne w przypadku podziału każdej pozycji listy elementu na oddzielnych partii.Aby uzyskać pełną listę znanych element metadanych, zobacz Metadane dobrze znanego elementu MSBuild.

Poniższy przykład pokazuje, jak do przetwarzania wsadowego każdy element na liście element, jeden na raz.Ponieważ Identity wartość każdego elementu metadanych jest unikatowy, ExampColl element listy jest podzielony na sześć partii każdej partii zawierających jeden element na liście element.Obecność %(Identity)w Text powiadamia atrybutu MSBuild że tworzenie pakietów wsadowych powinna być wykonana.

<Project
    xmlns="https://schemas.microsoft.com/developer/msbuild/2003">
    
    <ItemGroup>

        <ExampColl Include="Item1"/>
        <ExampColl Include="Item2"/>
        <ExampColl Include="Item3"/>
        <ExampColl Include="Item4"/>
        <ExampColl Include="Item5"/>
        <ExampColl Include="Item6"/>

    </ItemGroup>

    <Target Name="ShowMessage">
        <Message
            Text = "Identity: &quot;%(Identity)&quot; -- Items in ExampColl: @(ExampColl)"/>
    </Target>

</Project>

Komunikat — Zadanie Zadań wyświetla następujące informacje:

Identity: "Item1" -- Items in ExampColl: Item1
Identity: "Item2" -- Items in ExampColl: Item2
Identity: "Item3" -- Items in ExampColl: Item3
Identity: "Item4" -- Items in ExampColl: Item4
Identity: "Item5" -- Items in ExampColl: Item5
Identity: "Item6" -- Items in ExampColl: Item6

Wyświetla listę filtrowania elementu

Tworzenie pakietów wsadowych można odfiltrować niektórych elementów z listy przed przekazaniem go do zadania.Na przykład filtrowanie Extension wartość metadanych elementu znanych umożliwia uruchamianie zadania na tylko pliki z rozszerzeniem szczególnych.

Poniższy przykład pokazuje, jak podzielić listy partii na podstawie metadanych elementu, a następnie przefiltrować te partie, gdy są one przekazywane do zadania.ExampColl Element listy jest podzielony na trzy partie oparte na Number element metadanych.Condition Atrybut zadania określa, że tylko partii z Number wartość metadanych z elementu 2 zostaną przekazane do zadania

<Project
    xmlns="https://schemas.microsoft.com/developer/msbuild/2003">
    
    <ItemGroup>

        <ExampColl Include="Item1">
            <Number>1</Number>
        </ExampColl>
        <ExampColl Include="Item2">
            <Number>2</Number>
        </ExampColl>
        <ExampColl Include="Item3">
            <Number>3</Number>
        </ExampColl>
        <ExampColl Include="Item4">
            <Number>1</Number>
        </ExampColl>
        <ExampColl Include="Item5">
            <Number>2</Number>
        </ExampColl>
        <ExampColl Include="Item6">
            <Number>3</Number>
        </ExampColl>

    </ItemGroup>

    <Target Name="Exec">
        <Message
            Text = "Items in ExampColl: @(ExampColl)"
            Condition="'%(Number)'=='2'"/>
    </Target>

</Project>

Komunikat — Zadanie Zadań wyświetla następujące informacje:

Items in ExampColl: Item2;Item5

Zobacz też

Informacje

Metadane dobrze znanego elementu MSBuild

Item — Element (MSBuild)

ItemMetadata — Element (MSBuild)

Koncepcje

Przetwarzanie wsadowe w programie MSBuild

Inne zasoby

Pojęcia dotyczące programu MSBuild

Odwołanie do narzędzia MSBuild