Usando vários processadores para construir projetos
Visual Studio 2008podem tirar proveito de sistemas que possuem vários processadores ou processadores de vários núcleos. Um processo de compilação separada é criado para cada processador disponível. Por exemplo, se o sistema tiver quatro processadores, compilação de quatro processos é criadas. MSBuildpode processar esses builds simultaneamente e, portanto, em geral o tempo de compilação é reduzido. No entanto, a construção parallel apresenta algumas alterações em como os processos de compilação ocorrerem. Este tópico aborda essas alterações.
Referências de projeto a projeto
Quando o Mecanismo de compilação Microsoft encontrar uma referência (P2P) do projeto a projeto enquanto ele estiver usando paralelo compilações para construir um projeto, ele cria a referência de uma só vez. Se dois projetos tiverem o mesmo ponto a ponto referência, a referência não é reconstruída para cada projeto. Em vez disso, o mecanismo de compilação retorna a referência de P2P mesma para ambos os projetos que dependem dele. Solicitações futuras na sessão para o mesmo destino são fornecidas a mesma referência P2P.
Ciclo de detecção
Ciclo de detecção funciona da mesma, como fazia MSBuild 2.0, exceto que agora MSBuild pode relatar a detecção do ciclo em um momento diferente ou na compilação.
Erros e exceções durante as compilações paralelas
Em compilações paralelas, erros e exceções podem ocorrer em momentos diferentes que eles fazem em uma compilação não paralelos e quando um projeto não constrói, continuam de outras criações do projeto. MSBuildnão impedirá qualquer compilação do projeto que está criando em paralelo com aquele que falhou. Outros projetos continuam construir até o êxito ou a falha. No entanto, se ContinueOnError tiver sido ativado, então não há compilações irá parar mesmo se ocorrer um erro.
Projeto do Visual C++ (. vcproj) e arquivos de solução (. sln)
Ambos Visual C++ (. vcproj) de projetos e arquivos de solução (. sln) que podem ser passados para o Tarefa do MSBuild. Para Visual C++ projetos, VCWrapperProject é chamado e em seguida, o interno MSBuild projeto é criado. Para Visual C++ soluções, um SolutionWrapperProject é criado e em seguida, o interno MSBuild projeto é criado. Em ambos os casos, o projeto resultante é tratado o mesmo que qualquer outro MSBuild project.
Execução em diversos processos
Quase todas as atividades relacionadas a compilação exigem o diretório atual para permanecem constantes por todo o processo de compilação para evitar erros de caminho. Portanto, os projetos não pode ser executado em threads diferentes no MSBuild porque eles causaria vários diretórios a serem criados.
Para evitar esse problema, mas ainda permitir compilações para vários processadores, MSBuild usa "processo isolamento". Usando o isolamento do processo MSBuild pode criar um máximo de n processos, onde n é igual ao número de processadores disponíveis no sistema. Por exemplo, se MSBuild uma solução em um sistema que possui dois processadores, e somente dois processos de compilação são criadas de compilações. Esses processos são reutilizados para construir todos os projetos na solução.