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: "%(Identity)" -- 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
ItemMetadata — Element (MSBuild)
Koncepcje
Przetwarzanie wsadowe w programie MSBuild