Aracılığıyla paylaş


MSBuild ile Paralel Olarak Birden Çok Proje Derleme

Paralel olarak çalışan birden çok proje daha hızlı oluşturmak için MSBuild kullanabilirsiniz. Yapılar paralel olarak çalıştırmak için çok çekirdekli bir veya birden çok işlemci bilgisayarda aşağıdaki ayarları kullanın:

  • /maxcpucount Bir komut istemine geçin.

  • BuildInParallel MSBuild görevi görev parametresi.

Not

/verbosity (/v) Bir komut satırı anahtarı da yapı başarımını etkiler.Yapı günlük bilgilerinizi ayrıntı düzeyini ayarlama ayrıntılı veya sorun giderme için kullanılan tanı ise yapı performans düşebilir.Daha fazla bilgi için, bkz. MSBuild ile Yapı Günlükleri Alma ve MSBuild Komut Satırı Başvurusu.

/maxcpucount anahtarı

Kullanırsanız, /maxcpucount geçin, ya da /m için kısa, MSBuild paralel olarak çalıştırılabilir MSBuild.exe'yi işlemler belirtilen sayıda oluşturabilirsiniz. Bu işlemler olarak da bilinen olan "işçi." Diğer kullanılabilir işlemci diğer projeler oluşturma gibi aynı zamanda proje oluşturmak, varsa her alt işlem ayrı çekirdek veya işlemci kullanır. Örneğin, bu anahtar "4" neden bir değere ayarlamak MSBuild projeyi oluşturmak için dört alt işlemler oluşturmak için.

Dahil ederseniz /maxcpucount değeri, MSBuild belirtmeden anahtarın kullanacağı işlemcilerin sayısı.

MSBuild 3.5 içinde kullanılmaya başlandı, bu anahtarı hakkında daha fazla bilgi için bkz: MSBuild Komut Satırı Başvurusu.

Aşağıdaki örnek, üç alt işlemler kullanmak için MSBuild bildirir. Bu yapılandırmayı kullanıyorsanız, MSBuild aynı anda üç projeleri oluşturabilirsiniz.

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

BuildInParallel görev parametresi

BuildInParallelüzerinde bir isteğe bağlı Boole parametresi olan bir MSBuild görev. Zaman BuildInParallel ayarlamak true (varsayılan değer), birden çok alt işlemi mümkün olduğunca aynı anda çok sayıda projeleri oluşturmak üzere oluşturulur. Bunun çalışması /maxcpucount anahtarının ayarlanmış olması gerekir bir değer olarak 1'den büyük ve sistemin en az çift çekirdekli veya iki veya daha fazla işlemciye sahip.

Nasıl ayarlanacağı hakkında microsoft.common.targets alınan bir örnek şudur BuildInParallel parametresi.

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

Ayrıca bkz.

Kavramlar

Projeleri oluşturmak için birden çok işlemci kullanma

Yazı çok-Processor-Aware Loggers

Diğer Kaynaklar

c++ yapı paralellik blog tuning