Freigeben über


Paralleles Erstellen von mehreren Projekten mit MSBuild

Sie können MSBuild verwenden, mehrere Projekte schneller zu erstellen, indem Sie parallel ausführen.Um Builds parallel auszuführen, verwenden Sie die folgenden Einstellungen auf einem oder mehreren mehrere Prozessorcomputer:

  • Der /maxcpucount Schalter an einer Eingabeaufforderung.

  • Der BuildInParallel Aufgabenparameter auf einer MSBuild-Aufgabe.

HinweisHinweis

Der Schalter /verbosity (/v) in einer Befehlszeile kann auch die Buildleistung auswirken.die Buildleistung verringert sich möglicherweise, wenn die Ausführlichkeit der Buildprotokollinformationen zu ausführlichen oder zu Diagnosem festgelegt wird, die für die Problembehandlung verwendet werden.Weitere Informationen finden Sie unter Erhalten von Buildprotokollen mit MSBuild und MSBuild-Befehlszeilenreferenz.

Schalter /maxcpucount-

Wenn Sie den /maxcpucount Schalter oder /m kurz MSBuild verwenden, kann die angegebene Anzahl von MSBuild.exe-Prozessen erstellen, die parallel ausgeführt werden. Diese Prozesse werden auch als "Arbeitsprozesse". Jeder Arbeitsprozess verwendet einen anderen Kern oder Prozessor, soweit verfügbar, um ein Projekt zu der gleichen Zeit zu erstellen wie andere verfügbare Prozessoren.Beispielsweise wird das Festlegen dieses Schalters auf einen Wert von "4 " MSBuild, vier Arbeitsprozesse zu erstellen, um das Projekt zu erstellen.

Wenn Sie den Schalter /maxcpucount einschließen, ohne einen Wert anzugeben, MSBuild verwendet bis zur Anzahl der Prozessoren auf dem Computer.

Weitere Informationen zu diesen Schalter, der in MSBuild 3.5 eingeführt wurde, finden Sie unter MSBuild-Befehlszeilenreferenz.

Im folgenden Beispiel weist MSBuild an, um drei Arbeitsprozesse zu verwenden.Wenn Sie diese Konfiguration verwenden, kann MSBuild drei Projekte gleichzeitig erstellen.

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

BuildInParallel-Aufgabenparameter

BuildInParallel ist ein optionaler boolescher Parameter für eine MSBuild-Aufgabe.Wenn BuildInParallel auf true (der Standardwert) festgelegt ist, werden mehrere Arbeitsprozesse zum gleichzeitigen Erstellen so vieler Projekte wie möglich erzeugt.Damit dies ordnungsgemäß funktioniert, muss der /maxcpucount-Schalter auf einen Wert größer 1 festgelegt sein, und das System muss mindestens ein Dualcore-System sein oder über mindestens zwei Prozessoren verfügen.

Nachfolgend ist ein Beispiel aus microsoft.common.targets aufgeführt, das veranschaulicht, wie der BuildInParallel-Parameter festgelegt wird.

<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>

Siehe auch

Konzepte

Verwenden mehrerer Prozessoren für die Erstellung von Projekten

Schreiben von multiprozessorfähigen Protokollierungen

Weitere Ressourcen

Optimierungs-C++-Build-Parallelitätsblog