Udostępnij za pośrednictwem


Program MSBuild tworzenie pakietów wsadowych.

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 Element metadanych w tworzenie pakietów wsadowych zadania.

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 Element metadanych w docelowej tworzenie pakietów wsadowych..

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

Element ItemMetadata (MSBuild)

Inne zasoby

Pojęcia dotyczące programu MSBuild

Program MSBuild odniesienia

Program MSBuild zaawansowane pojęcia