Usando vários processadores para construir projetos
MSBuild 3,5 pode tirar proveito dos sistemas que têm vários processadores, ou os processadores de vários principal.Um processo separado de compilação é criado para cada processador disponível.Por exemplo, se o sistema tem quatro processadores, então quatro processos de compilação são criados.MSBuild pode processar essas construções simultaneamente, e portanto o tempo total de compilação são reduzidos. No entanto, a compilação paralela apresenta algumas alterações em como os processos de compilação ocorre.Este tópico aborda essas alterações.
O projeto para projetar referências
Quando Mecanismo de compilação Microsoft encontra uma referência de projeto-a-projeto (P2P) quando usar compilações paralelas para criar um projeto, a referência compila somente uma vez.Se dois projetos têm a mesma referência de P2P, a referência não é reconstruída para cada projeto.Em vez disso, o mecanismo de compilação retorna a mesma referência de P2P a ambos os projetos que dependem de ela.Solicitações futuras na sessão para o mesmo destino são fornecidas a mesma referência de P2P.
Detecção de ciclo
Funções de detecção do ciclo do mesmo jeito em MSBuild 2,0, exceto que agora MSBuild podem relatar a detecção de ciclo em um horário diferentes ou na compilação.
Erros e exceções durante compilações paralelas
Paralelamente as compilações, erros e exceções podem ocorrer em momentos diferentes do que acontece em uma compilação não paralela, e quando um projeto não compilar, as outras compilação do projeto continue.MSBuild não irá parar qualquer compilação do projeto que compilar paralelamente a aquela que falhou. Outros projetos continuam a compilação até que sucedam ou falhem.No entanto, se ContinueOnError foi ativado, então nenhuma compilações parará mesmo se ocorrer um erro.
Visual C++ Project (.vcproj) e arquivos de solução (.sln)
Projetos de Visual C++ (.vcproj) e arquivos de solução (.sln) podem ser passados para Tarefa do MSBuild.Para projetos de Visual C++ , VCWrapperProject é chamado, e o projeto interno de MSBuild é então criado.Para soluções de Visual C++ , um SolutionWrapperProject é criado, e o projeto interno de MSBuild é então criado.Em ambos os casos, o projeto resultante é tratado o mesmo que qualquer outro projeto de MSBuild .
Execução multiprocessadas
Quase todas as atividades relacionadas tempo requerem o diretório atual permanece constante em todo o processo de compilação evitar erros caminho- relacionados.Portanto, os projetos não podem executar em diferentes segmentos em MSBuild como com que os vários diretórios a serem criados.
Para evitar esse problema mas ainda permitir compilações multiprocessadores, os usos de MSBuild “processam o isolamento.” Usando o isolamento do processo, MSBuild pode criar um máximo de processos de n , onde n é igual ao número de processadores disponíveis no sistema.Por exemplo, se MSBuild cria uma solução em um sistema que possui dois processadores, então apenas dois processos de compilação são criados.Esses processos são reutilizar para compilar todos os projetos na solução.