Paralelní sestavení více projektů pomocí MSBuildBuild multiple projects in parallel with MSBuild

Nástroj MSBuild lze použít pro rychlejší sestavení více projektů tak, že budou tyto projekty spuštěny paralelně.You can use MSBuild to build multiple projects faster by running them in parallel. Pro paralelní spuštění sestavení je možné na počítači s více jádry nebo s více procesory použít následující nastavení:To run builds in parallel, you use the following settings on a multi-core or multiple processor computer:

  • Přepínač příkazového řádku -maxcpucount.The -maxcpucount switch at a command prompt.

  • Parametr úlohy BuildInParallel na úlohu nástroje MSBuild.The BuildInParallel task parameter on an MSBuild task.

Poznámka

Výkon sestavení může mít i přepínač -verbose (-v) na příkazovém řádku.The -verbosity (-v) switch in a command line can also affect build performance. Výkon sestavení se může snížit, je-li podrobnost informací protokolu sestavení nastavena na možnosti podrobné nebo diagnostické, které se používají pro řešení potíží.Your build performance might decrease if the verbosity of your build log information is set to detailed or diagnostic, which are used for troubleshooting. Další informace najdete v tématu získání protokolů sestavení a odkazů na příkazový řádek.For more information, see Obtain build logs and Command-line reference.

– Přepínač maxcpucount-maxcpucount Switch

Použijete-li -maxcpucount přepínač nebo -m pro krátký, nástroj MSBuild může vytvořit zadaný počet MSBuild.exe procesů, které mohou být spuštěny paralelně.If you use the -maxcpucount switch, or -m for short, MSBuild can create the specified number of MSBuild.exe processes that may be run in parallel. Tyto procesy jsou známé také jako „pracovní procesy“.These processes are also known as "worker processes." Každý pracovní proces používá samostatné jádro nebo procesor – je-li nějaký k dispozici – pro sestavení projektu ve stejnou dobu, kdy ostatní procesory provádějí sestavení ostatních projektů.Each worker process uses a separate core or processor, if any are available, to build a project at the same time as other available processors may be building other projects. Například nastavení tohoto přepínače na hodnotu „4“ způsobí, že nástroj MSBuild vytvoří čtyři pracovní procesy pro sestavení projektu.For example, setting this switch to a value of "4" causes MSBuild to create four worker processes to build the project.

Při použití přepínače -maxcpucount bez zadání hodnoty použije nástroj MSBuild číslo odpovídající počtu procesorů v počítači.If you include the -maxcpucount switch without specifying a value, MSBuild will use up to the number of processors on the computer.

Další informace o tomto přepínači, který byl představen v MSBuild 3,5, najdete v tématu Reference k příkazovému řádku.For more information about this switch, which was introduced in MSBuild 3.5, see Command-line reference.

Následující příklad nastaví nástroj MSBuild pro použití tří pracovních procesů.The following example instructs MSBuild to use three worker processes. Použitím této konfigurace může nástroj MSBuild provádět souběžné sestavení tří projektů.If you use this configuration, MSBuild can build three projects at the same time.

msbuild.exe myproj.proj -maxcpucount:3

BuildInParallel – parametr úlohyBuildInParallel task parameter

BuildInParallel je volitelný logický parametr pro úlohu MSBuild.BuildInParallel is an optional boolean parameter on an MSBuild task. Když BuildInParallel je nastavená na true (výchozí hodnota je true ), vygeneruje se více pracovních procesů, aby se sestavilo co nejvíce projektů.When BuildInParallel is set to true (its default value is true), multiple worker processes are generated to build as many projects at the same time as possible. Aby tento postup správně fungoval, musí být přepínač -maxcpucount nastaven na hodnotu větší než 1 a systém musí být alespoň dvoujádrový nebo mít dva nebo více procesorů.For this to work correctly, the -maxcpucount switch must be set to a value greater than 1, and the system must be at least dual-core or have two or more processors.

Následuje příklad, který je pořízen od společnosti Microsoft. Common. targets, o tom, jak nastavit BuildInParallel parametr.The following is an example, taken from microsoft.common.targets, about how to set the BuildInParallel parameter.

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

Viz takéSee also