Criando vários projetos paralelamente com o MSBuild

Você pode usar MSBuild para criar mais rapidamente vários projetos executando os paralelamente.Para executar paralelamente compilações, você usa as seguintes configurações em um computador de vários principal ou do processador de vários:

  • Alterne de /maxcpucount em um prompt de comando.

  • O parâmetro de tarefa de BuildInParallel em uma tarefa de MSBuild.

ObservaçãoObservação

Alterne de /verbosity (/v) na linha de comando também pode afetar o desempenho de compilação.O desempenho de compilação pode diminuir se a verbosidade de suas informações de log de compilação é definida como detalhados ou a diagnóstico, que são usadas solução de problemas.Para obter mais informações, consulte Obtendo logs de compilação com o MSBuild e Referência de linha de comando MSBuild.

Opção de /maxcpucount

Se você usar a opção de /maxcpucount , ou /m para breve, MSBuild pode criar o número especificado de processos de MSBuild.exe que podem ser executados paralelamente. Esses processos são também conhecidos como “processos de trabalho.” Cada processo de trabalho usa um principal ou um processador separado, se alguma estiver disponível, para compilar um projeto ao mesmo tempo que outros processadores disponíveis podem criar outros projetos.Por exemplo, defina este interruptor a um valor “4" faz com que MSBuild crie quatro processos de trabalho para criar o projeto.

Se você incluir a opção de /maxcpucount sem especificar um valor, MSBuild usará até o número de processadores no computador.

Para obter mais informações sobre este interruptor, que foi introduzido em MSBuild 3,5, consulte Referência de linha de comando MSBuild.

O exemplo a seguir instrui MSBuild para usar três processos de trabalho.Se você usar essa configuração, MSBuild pode criar três projetos ao mesmo tempo.

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

Parâmetro de tarefa de BuildInParallel

BuildInParallel é um parâmetro boolean opcional em uma tarefa de MSBuild .Quando BuildInParallel é definido como true (o valor padrão), vários processos de trabalho são gerados para criar quantos projetos ao mesmo tempo que possível.Para que isso funcione corretamente, alterne de /maxcpucount deve ser definido como um valor maior que 1, e o sistema deve ser pelo menos dual core ou para ter dois ou mais processadores.

A seguir está um exemplo, extraído de microsoft.common.targets, sobre como definir o parâmetro de BuildInParallel .

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

Consulte também

Conceitos

Usando vários processadores para construir projetos

Registradores de Multi-processador reconhecimento de escrita

Outros recursos

Ajustando o blog de paralelismo de compilação do C++