Udostępnij za pośrednictwem


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

Odwołanie do narzędzia MSBuild

Pojęcia zaawansowane dotyczące programu MSBuild