Paralelní sestavování více projektů pomocí nástroje MSBuild

Nástroj MSBuild lze použít pro rychlejší sestavení více projektů tak, že budou tyto projekty spuštěny paralelně. 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í:

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

  • Parametr úlohy BuildInParallel na úlohu nástroje MSBuild.

Poznámka:

Přepínač -verbosity (-v) v příkazovém řádku může také ovlivnit výkon sestavení. 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íží. Další informace najdete v tématu Získání protokolů sestavení a odkazu na příkazový řádek.

-maxcpucount Switch

Pokud používáte -maxcpucount přepínač, nebo -m pro krátké, MSBuild může vytvořit zadaný počet procesů MSBuild.exe , které mohou být spuštěny paralelně. Tyto procesy se také označují jako "pracovní procesy". Každý pracovní proces používá samostatné jádro nebo procesor, pokud je k dispozici, k vytvoření projektu ve stejnou dobu jako ostatní dostupné procesory můžou vytvářet další projekty. 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.

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.

Další informace o tomto přepínači, který byl zaveden v nástroji MSBuild 3.5, naleznete v referenčních informacích příkazového řádku.

Následující příklad nastaví nástroj MSBuild pro použití tří pracovních procesů. Použitím této konfigurace může nástroj MSBuild provádět souběžné sestavení tří projektů.

msbuild.exe myproj.proj -maxcpucount:3

Parametr úlohy BuildInParallel

BuildInParallel je volitelný logický parametr pro úlohu MSBuild. Pokud BuildInParallel je nastavená true hodnota (výchozí hodnota trueje), vygeneruje se více pracovních procesů, které sestaví co nejvíce projektů najednou. Aby to fungovalo správně, -maxcpucount musí být přepínač nastaven na hodnotu větší než 1.

Paralelní sestavování funguje pouze pro jedno vyvolání úlohy MSBuild, takže pokud vyvoláte dávkování úkolů, paralelismus je omezen na každou dávku. Viz dávkování nástroje MSBuild.

Následující příklad ukazuje, jak vytvořit cíl v souboru projektu s více různými hodnotami vlastností paralelně pomocí parametru BuildInParallel .

Tady je soubor do_it.proj projektu s cílem, který jenom vytiskne pro každý z nich SourceValuejinou zprávu:

<Project>
   <Target Name="DoIt">
      <Message Text="For this invocation SourceValue='$(SourceValue)'" Importance="High" />
   </Target>
</Project>

Následující projekt vytvoří zadaný cíl DoIt do_it.proj paralelně pomocí seznamu položek a AdditionalProperties metadat k určení různých hodnot vlastnosti SourceValue.

<Project>
   <ItemGroup>
      <_Project Include="do_it.proj" AdditionalProperties="SourceValue=Test1" />
      <_Project Include="do_it.proj" AdditionalProperties="SourceValue=Test2" />
      <_Project Include="do_it.proj" AdditionalProperties="SourceValue=Test3" />
      <_Project Include="do_it.proj" AdditionalProperties="SourceValue=Test4" />
   </ItemGroup>
   <Target Name="Build">
      <MSBuild Projects="@(_Project)" Targets="DoIt" BuildInParallel="true" />
   </Target>
</Project>