Sdílet prostřednictvím


Paralelní sestavování více projektů současně pomocí nástroje MSBuild

Nástroj MSBuild slouží k vytvoření více projektů, které jsou rychlejší spuštěním paralelně.Sestavení probíhají souběžně, použijte následující nastavení Vícejádrový nebo více procesoru počítače:

  • /maxcpucount Přepínač příkazového řádku.

  • BuildInParallel Parametr úkolu pro úkol MSBuild.

[!POZNÁMKA]

/verbosity (/v) Přepínače příkazového řádku může také ovlivnit výkon sestavení.Výkon sestavení se může snížit, je-li podrobnost informací protokolu sestavení je nastaven na podrobné nebo diagnostiky, které se používají pro řešení potíží.Další informace naleznete v tématu Získávání protokolů o sestavení pomocí nástroje MSBuild a Referenční dokumentace pro použití nástroje MSBuild v příkazovém řádku.

/maxcpucount přepínač

Použijete-li /maxcpucount přepnout, nebo /m pro krátké MSBuild vytvořit zadaný počet MSBuild.exe procesy spuštěné současně. Tyto procesy jsou označovány také jako "pracovní procesy." Každý pracovní proces používá samostatné jádro nebo zpracovatele, pokud jsou nějaké k dispozici pro vytvoření projektu ve stejnou dobu jako ostatní dostupné procesory může vytváření jiných projektů.Příklad nastavení tohoto přepínače na hodnotu "4" způsobí, že MSBuild k vytvoření čtyř pracovních procesů pro sestavení projektu.

Pokud zahrnete /maxcpucount přepínač bez zadání hodnoty, nástroj MSBuild použije na počet procesorů v počítači.

Další informace o tento přepínač, který byl zaveden v MSBuild 3.5, viz Referenční dokumentace pro použití nástroje MSBuild v příkazovém řádku.

Následující příklad nastaví nástroj MSBuild pomocí tří pracovních procesů.Používáte-li tuto konfiguraci, MSBuild můžete vytvořit tři projekty ve stejnou dobu.

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

Parametr BuildInParallel úloh

BuildInParallelje volitelný parametr boolean na MSBuild úkolu.Při BuildInParallel je nastavena na true (jeho výchozí hodnota), vytvářet mnoho projektů ve stejnou dobu, co jsou generovány více pracovních procesů.Tento postup fungovat správně /maxcpucount přepínač musí být nastavena na hodnotu větší než 1 a systém musí být alespoň dvěma jádry nebo mají dva nebo více procesorů.

Následuje příklad z microsoft.common.targets o tom, jak nastavit BuildInParallel parametr.

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

Koncepty

Použití více procesorů, vytvářet projekty

Psaní vícestránkovém-Processor podporující úhozy kláves

Další zdroje

Optimalizace paralelnost sestavení C++ blogu