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 SourceValue
biri 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 SourceValue
farklı değerlerini belirtmek için öğe listesini ve AdditionalProperties
meta verileri kullanarak belirtilen hedefi DoIt
do_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>