Przetwarzanie wsadowe w programie MSBuild
MSBuildma zdolność do dzielenia list elementów na różnych kategorii lub serii, na podstawie metadanych elementu i uruchomić docelowej lub zadania jeden raz z każdej partii.
Zadania przetwarzania wsadowego
Tworzenie pakietów wsadowych zadania umożliwia uproszczenie pliki programu project poprzez zapewnienie sposób dzielenia list elementów na różnych partii i każdego z tych partii oddzielnie przechodzą do zadania.Oznacza to, że plik projektu musi mieć zadanie i jego atrybuty zadeklarowane na raz, mimo że można je uruchomić kilka razy.
Określić, że ma MSBuild do wykonania Tworzenie pakietów wsadowych z zadania za pomocą %(ItemMetaDataName) notacji w jednym z atrybutów zadań.Poniższy przykład dzieli Example element listy do partii na podstawie Color wartość metadanych elementu i przebiegów każdej partii do MyTask zadań oddzielnie.
[!UWAGA]
Jeśli nie odwołują się gdzie indziej atrybuty zadań Lista zapasów lub nazwa metadanych może być niejednoznaczny, można użyć %(ItemCollection.ItemMetaDataName) notacji do pełnej kwalifikacji wartość elementu metadanych służących do przetwarzania wsadowego.
<Project
xmlns="https://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Example Include="Item1">
<Color>Blue</Color>
</Example>
<Example Include="Item2">
<Color>Red</Color>
</Example>
</ItemGroup>
<Target Name="RunMyTask">
<MyTask
Sources = "@(Example)"
Output = "%(Color)\MyFile.txt"/>
</Target>
</Project>
Bardziej szczegółowe przykłady łączenia we wsady, zobacz Metadane elementu w przetwarzaniu wsadowym zadań.
Tworzenie pakietów wsadowych docelowej
MSBuildsprawdza się, jeśli wejść i wyjść z obiektem docelowym są zaktualizowane przed uruchomieniem obiektu docelowego.Jeśli zarówno wejść i wyjść są aktualne, obiekt docelowy jest pomijane.Jeśli zadanie wewnątrz elementu docelowego używa tworzenie pakietów wsadowych, MSBuild musi określić, jeśli wejść i wyjść dla każdej partii towarów jest aktualne.W przeciwnym razie obiektu docelowego jest wykonywany przy każdym wybraniu go.
W poniższym przykładzie Target element, który zawiera Outputs atrybutu z %(ItemMetaDataName) notacji.MSBuildDzieli Example element listy do partii na podstawie Color element metadanych i analizowanie sygnatur czasowych plików danych wyjściowych dla każdej partii.Jeśli dane wyjściowe z partii nie są aktualne, obiekt docelowy jest uruchamiany.W przeciwnym razie obiektu docelowego jest pomijane.
<Project
xmlns="https://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Example Include="Item1">
<Color>Blue</Color>
</Example>
<Example Include="Item2">
<Color>Red</Color>
</Example>
</ItemGroup>
<Target Name="RunMyTask"
Inputs="@(Example)"
Outputs="%(Color)\MyFile.txt">
<MyTask
Sources = "@(Example)"
Output = "%(Color)\MyFile.txt"/>
</Target>
</Project>
Innym przykładem docelowych tworzenie pakietów wsadowych, zobacz Metadane elementu w przetwarzaniu wsadowym obiektów docelowych.
Funkcje właściwości przy użyciu metadanych
Tworzenie pakietów wsadowych może być kontrolowane przez funkcje właściwości, które zawierają metadane.Na przykład,
$([System.IO.Path]::Combine($(RootPath),%(Compile.Identity)))
używa Combine połączyć ścieżka folderu głównego ze ścieżką element kompilacji.
Właściwość funkcje mogą nie pojawiać się w wartości metadanych.Na przykład,
%(Compile.FullPath.Substring(0,3))
nie jest dozwolone.
Aby uzyskać więcej informacji na temat właściwości funkcji, zobacz Funkcje właściwości.
Zobacz też
Informacje
ItemMetadata — Element (MSBuild)
Inne zasoby
Pojęcia dotyczące programu MSBuild