Udostępnij za pośrednictwem


Równoległe tworzenie wielu projektów za pomocą narzędzia MSBuild

MSBuild służy do tworzenia wielu projektów szybciej uruchamiając je równolegle.Aby uruchomić buduje równolegle, użyj następujących ustawień na wielordzeniowy lub wielu procesora komputera:

  • /maxcpucount Przełączyć się w wierszu polecenia.

  • BuildInParallel Parametrem zadania w zadanie programu MSBuild.

[!UWAGA]

/verbosity (/v) Przełącznik w wierszu polecenia, może również wpływać na wydajność kompilacji.Jeśli poziom szczegółowości informacji dziennika kompilacji jest zestaw szczegółowej lub diagnostycznych, które służą do rozwiązywania problemów, może spaść wydajność kompilacji.Aby uzyskać więcej informacji, zobacz Uzyskiwanie dzienników kompilacji za pomocą narzędzia MSBuild i Informacje w wierszu polecenia programu MSBuild.

Przełącznik /maxcpucount

Klienci korzystający z /maxcpucount przełączyć, lub /m za krótki, MSBuild można utworzyć określoną liczbę procesów MSBuild.exe, które mogą być uruchamiane równolegle. Procesy te są nazywane także "procesy". Każdy proces roboczy używa oddzielnych core lub procesor, jeśli takie są dostępne zbudować projekt w tym samym czasie, o innych dostępnych procesorów może być zdobycie innych projektów.Na przykład, ustawienie tego parametru na wartość "4" powoduje, że MSBuild Aby utworzyć cztery procesów roboczych do budowania projektu.

Jeśli dołączysz /maxcpucount przełącznika bez określenia wartości, program MSBuild zużywa do liczby procesorów w komputerze.

Aby uzyskać więcej informacji na temat tego przełącznika, który został wprowadzony w MSBuild 3.5, zobacz Informacje w wierszu polecenia programu MSBuild.

Poniższy przykład powoduje, że program MSBuild używać trzech procesów roboczych.Jeśli używana jest ta konfiguracja, program MSBuild stworzyć trzech projektów w tym samym czasie.

C:\WINDOWS\Microsoft.NET\Framework\v3.5>msbuild.exe myproj.proj /maxcpucount:3

Parametr BuildInParallel zadań

BuildInParallelto parametr opcjonalny, boolean na MSBuild zadania.Gdy BuildInParallel jest ustawiona na true (wartość domyślną) wiele procesów roboczych są generowane zbudować dowolną liczbę projektów, w tym samym czasie, jak to możliwe.Aby to działało poprawnie /maxcpucount przełącznik musi być ustawiona na wartość większą niż 1, a system muszą być co najmniej dwurdzeniowy lub mają dwa lub większą liczbę procesorów.

Oto przykład, pobranych z microsoft.common.targets o BuildInParallel parametru.

<PropertyGroup>
    <BuildInParallel Condition="'$(BuildInParallel)' == 
        ''">true</BuildInParallel>
</PropertyGroup>
<MSBuild
    Projects="@(_MSBuildProjectReferenceExistent)"
    Targets="GetTargetPath"
    BuildInParallel="$(BuildInParallel)"
    Properties="%(_MSBuildProjectReferenceExistent.SetConfiguration); 
        %(_MSBuildProjectReferenceExistent.SetPlatform)"
    Condition="'@(NonVCProjectReference)'!='' and 
        ('$(BuildingSolutionFile)' == 'true' or 
        '$(BuildingInsideVisualStudio)' == 'true' or 
        '$(BuildProjectReferences)' != 'true') and   
        '@(_MSBuildProjectReferenceExistent)' != ''"
    ContinueOnError="!$(BuildingProject)">
    <Output TaskParameter="TargetOutputs" 
        ItemName="_ResolvedProjectReferencePaths"/>
</MSBuild>

Zobacz też

Koncepcje

Do tworzenia projektów przy użyciu wielu procesorów

Rejestratory wieloprocesorowych-Processor-Aware pisania

Inne zasoby

Dostrajanie C++ budować proste blogu