MSBuild ile paralel olarak birden çok proje oluşturma

Birden çok projeyi paralel olarak çalıştırarak daha hızlı derlemek için MSBuild kullanabilirsiniz. Derlemeleri paralel olarak çalıştırmak için, çok çekirdekli veya birden çok işlemcili bilgisayarda aşağıdaki ayarları kullanırsınız:

  • Komut -maxcpucount istemindeki anahtar.

  • BuildInParallel BIR MSBuild görevinde görev parametresi.

Dekont

Komut satırındaki -verbosity (-v) anahtarı da derleme performansını etkileyebilir. Derleme günlüğü bilgilerinizin ayrıntı düzeyi, sorun giderme için kullanılan ayrıntılı veya tanılama olarak ayarlanırsa derleme performansınız düşebilir. Daha fazla bilgi için bkz. Derleme günlüklerini ve Komut satırı başvurusunu alma.

-maxcpucount Anahtarı

Anahtarını kullanırsanız -maxcpucount veya -m kısaca MSBuild, paralel olarak çalıştırılabilen belirtilen sayıda MSBuild.exe işlemi oluşturabilir. Bu işlemler "çalışan işlemleri" olarak da bilinir. Her çalışan işlemi, diğer kullanılabilir işlemcilerin başka projeler oluşturabileceği şekilde bir proje oluşturmak için ayrı bir çekirdek veya işlemci (varsa) kullanır. Örneğin, bu anahtarın "4" değerine ayarlanması MSBuild'in projeyi oluşturmak için dört çalışan işlemi oluşturmasına neden olur.

Anahtarı bir değer belirtmeden eklerseniz -maxcpucount , MSBuild bilgisayardaki işlemci sayısına kadar kullanır.

MSBuild 3.5'te kullanıma sunulan bu anahtar hakkında daha fazla bilgi için bkz . Komut satırı başvurusu.

Aşağıdaki örnekte MSBuild'e üç çalışan işlemi kullanması talimatı verilmiştir. Bu yapılandırmayı kullanırsanız, MSBuild aynı anda üç proje oluşturabilir.

msbuild.exe myproj.proj -maxcpucount:3

BuildInParallel görev parametresi

BuildInParallel , MSBuild görevinde isteğe bağlı bir boole parametresidir. olarak BuildInParallel ayarlandığında true (varsayılan değeri olur true), mümkün olduğunca çok sayıda projeyi mümkün olduğunca çok proje oluşturmak için birden çok çalışan işlemi oluşturulur. Bunun doğru çalışması için anahtarın -maxcpucount 1'den büyük bir değere ayarlanması gerekir.

Paralel olarak derleme yalnızca MSBuild görevinin tek bir çağrısında çalışır, bu nedenle görev toplu işlemini çağırırsanız paralellik her toplu işlemle sınırlıdır. Bkz . MSBuild toplu işlemi.

Aşağıdaki örnekte, parametresini kullanarak paralel olarak birden çok farklı özellik değerine sahip bir proje dosyasında hedef oluşturma gösterilmektedir BuildInParallel .

İşte her SourceValuebiri için farklı bir ileti yazdıran bir hedefe sahip proje dosyasıdo_it.proj:

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

Aşağıdaki proje, özelliğinin SourceValuefarklı değerlerini belirtmek için öğe listesini ve AdditionalProperties meta verileri kullanarak belirtilen hedefi DoItdo_it.proj paralel olarak oluşturur.

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