Como usar o MSBuild.rsp ou especificar os parâmetros de linha de comando padrão do Visual Studio MSBuild.exe

0

Gostaria que o MSBuild.exe sempre usasse a opção / MP para que os projetos fossem sempre construído com múltiplos núcleos. Eu tentei adicionar / MP à última linha do meu MSBuild.rsp (no mesmo diretório que o executável MSBuild.exe). No entanto, a opção / MP não está sendo usada. Como posso obter o Visual Studio para usar sempre a opção / MP?

O MSBuild.rsp descreve o comportamento que desejo usar, mas não foi capaz de fazê-lo funcionar:

The auto-response file is a special .rsp file that MSBuild.exe automatically uses when building a project. This file, MSBuild.rsp, must be in the same directory as MSBuild.exe, otherwise it will not be found. You can edit this file to specify default command line switches to MSBuild.exe. For example, if you use the same logger every time you build a project, you can add the /logger switch to MSBuild.rsp, and MSBuild.exe will use the logger every time a project is built.

Eu reiniciei meu computador para verificar se o MSBuild.exe não estava de alguma forma usando a versão anterior do MSBuild.rsp.

Verifiquei que estava modificando o MSBuild.rsp no mesmo diretório do MSBuild.exe, marcando a opção "Abrir localização do arquivo" no gerenciador de tarefas do Windows. A opção MP de configuração do projeto está em branco (não explicitamente desativada).

Confirmei que a opção / MP no MSBuild.rsp não estava sendo usada fazendo uma reconstrução "Somente Projeto" e contando apenas uma instância de cl.exe no Gerenciador de Tarefas do Windows (se eu fizer a mesma reconstrução com o / MP opção definida manualmente, existem mais de 10 instâncias cl.exe).

Eu também tentei adicionar um monte de lixo ao MSBuild.rsp, e nenhum erro ou aviso foi relatado pelo Visual Studio, o que me leva a pensar que o MSBuild.rsp não está sendo usado.

Eu tentei habilitar o log de saída de diagnóstico para o MSBuild e ele mostra a opção / MP (como um argumento para Tracker.exe) quando eu explicitamente habilitá-lo nas configurações do meu projeto, mas se eu deixar a opção MP em branco na configuração do meu projeto e apenas incluí-lo no MSBuild.rsp, a opção / MP não está incluída nessa saída. Eu não sei o que Tracker.exe é (eu esperava ver MSBuild.exe em seu lugar). Eu também tentei adicionar um arquivo Tracker.rsp com / MP no mesmo diretório como Tracker.exe em um palpite selvagem, e isso não ajudou também (e eu também tentei adicionar MSBuild.rsp ao meu diretório Tracker.exe e que também não teve impacto).

Só para ver se o arquivo rsp poderia funcionar, eu adicionei explicitamente o arquivo rsp com a opção @ adicionada às configurações do meu projeto, e ele aparece como carregamento na opção / MP na saída de diagnóstico, mas não tem efeito. A opção / MP é incluída posteriormente como um argumento para cl.exe, não como um argumento para o Tracker.exe, como foi quando a opção MP foi especificada na configuração do projeto. Eu acho que a opção deve ser para MSBuild (ou Tracker.exe eu acho), não cl.exe.

Estou usando o Visual Studio 2010 com projetos principalmente em C ++.

    
por JDiMatteo 06.06.2014 / 22:34

1 resposta

1

Uma coisa que você pode fazer é colocá-lo em um arquivo adereço e ter seus projetos individuais herdados desse arquivo. Em ItemDefinitionGroup , dentro de seu ClCompile você teria <MultiProcessorCompilation>true</MultiProcessorCompilation> .

    
por 11.06.2014 / 19:49