Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
O MSBuild Server melhora o desempenho de compilações do .NET Core, que são invocadas quando você usa o dotnet build comando da CLI do .NET em ambientes de compilação Windows, Linux ou Mac .NET Core. Em vez de iniciar o processo de compilação cada vez que uma compilação é solicitada, grande parte do contexto é armazenado em cache em um processo de longa execução para que esteja disponível para ser reutilizado pela próxima compilação. MSBuild Server não é relevante para compilações do Visual Studio, porque Visual Studio atua como um host para MSBuild e já armazena em cache todo o contexto necessário.
O Servidor MSBuild geralmente não é útil em cenários de Integração Contínua, como as compilações de Pipeline do Azure, porque os pipelines normalmente configuram um ambiente de compilação sob demanda para cada compilação e depois descartam-no quando a compilação é concluída.
Habilitar o servidor MSBuild
A partir do .NET SDK 11, o MSBuild Server está ativado por predefinição para os comandos da .NET CLI baseados no MSBuild, como dotnet build e dotnet msbuild.
Nos SDKs .NET mais antigos, o MSBuild Server estava desligado por defeito e ativava-se ao definir DOTNET_CLI_USE_MSBUILD_SERVER para true ou 1.
Na primeira vez que inicias uma compilação, o servidor de compilação é iniciado e a cache é povoada. A cache é mantida após a conclusão dessa compilação; a segunda compilação avança assim mais rapidamente, pois o tempo de arranque é significativamente reduzido devido à informação em cache. A cache persiste após a conclusão da compilação, mas após um tempo de inatividade de 15 minutos, o servidor desliga-se. Portanto, é benéfico principalmente em cenários de compilação repetitivos onde muitas compilações são solicitadas em estreita sucessão.
O MSBuild Server também é ativado automaticamente para builds multithreaded (-mt), porque a execução multithreaded executa trabalho de projeto dentro do processo servidor.
Desligue ou desative o MSBuild Server
Existem algumas maneiras diferentes de desativar o uso do servidor MSBuild. Se você quiser apenas desligar o servidor em execução, você pode emitir o comando dotnet build-server shutdown.
Para desativar a funcionalidade em todas as builds numa máquina, pode definir a variável DOTNET_CLI_USE_MSBUILD_SERVER de ambiente do sistema para false. Você também pode definir essa variável por projeto em uma ferramenta como VS Code em launch.json.
Para desabilitar o MSBuild Server para uma invocação específica de uma compilação de linha de comando, você pode usar a opção /nr:false (ou /node-reuse:false). O MSBuild Server é uma forma de reutilização de nós, pelo que desativar a reutilização de nós também desativa o servidor, e o processo de compilação é executado no processo que o inicia.
O MSBuild Server não é usado para invocações que sejam inerentemente incompatíveis com o alojamento da build num processo separado, como -help, -version, e a reprodução de um registo binário. Essas builds voltam a funcionar no processo de lançamento.
Determinar o status atual do servidor de compilação
Você pode exibir o status do processo na máquina e procurar processos do servidor MSBuild. Os processos do servidor MSBuild são iniciados com dotnet.exe e mostram um caminho para MSBuild.dll e a opção /nodemode:8de comando , onde 8 indica Servidor MSBuild ( /nodemode:1 indica os nós de trabalho normais do MSBuild).
As builds que pedem o MSBuild Server também registam o que lhe acontece. Execute com -v:diag, ou capture um registo binário com -bl, para ver se a build inicia um novo servidor, reutiliza um em execução, ou volta a uma build em processo e porquê.