Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O MSBuild Server melhora o desempenho das compilações do .NET Core, que são iniciadas quando você usa o comando dotnet build da CLI do .NET em ambientes de compilação do .NET Core no Windows, Linux ou Mac. Em vez de iniciar o processo de build sempre que um build é solicitado, grande parte do contexto é armazenado em cache em um processo de execução longa para que ele esteja disponível para ser reutilizado pelo próximo build. O MSBuild Server não é relevante para Visual Studio builds, pois Visual Studio atua como um host para o MSBuild e já armazena em cache todo o contexto necessário.
O MSBuild Server geralmente não é útil em cenários de CI, como compilações do Azure Pipelines, porque os pipelines normalmente criam um ambiente de compilação sob demanda para cada compilação e, em seguida, o descartam quando a compilação é concluída.
Habilitar o MSBuild Server
A partir do SDK do .NET 11, o MSBuild Server é habilitado por padrão para comandos da CLI de .NET baseados em MSBuild, como dotnet build e dotnet msbuild.
Nos SDKs de .NET anteriores, o MSBuild Server estava desativado por padrão e você o habilitou definindo DOTNET_CLI_USE_MSBUILD_SERVER como true ou 1.
Na primeira vez que você inicia um build, o servidor de build é iniciado e o cache é preenchido. O cache é mantido após a conclusão desse build; o segundo build, portanto, continua mais rápido, pois o tempo de inicialização é significativamente reduzido devido às informações armazenadas em cache. O cache persiste após a conclusão do build, mas após um tempo ocioso de 15 minutos, o servidor é desligado. Portanto, é mais vantajoso principalmente em cenários de build repetidos, nos quais muitos builds são solicitados em rápida sucessão.
O MSBuild Server também é ativado automaticamente para builds multithreaded (-mt), pois a execução multithreaded executa o trabalho do projeto dentro do processo do servidor.
Desligar ou desabilitar o SERVIDOR MSBuild
Há algumas maneiras diferentes de desabilitar o uso do servidor MSBuild. Se você quiser desligar apenas o servidor em execução, poderá emitir o comando dotnet build-server shutdown.
Para desabilitar o recurso para todos os builds em um computador, você pode definir a variável DOTNET_CLI_USE_MSBUILD_SERVER de ambiente do sistema como false. Você também pode definir essa variável em uma base por projeto em uma ferramenta como o VS Code em launch.json.
Para desabilitar o MSBuild Server para uma invocação específica de um build 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ó, portanto, desabilitar a reutilização do nó também desabilita o servidor e o build é executado no processo de inicialização.
O MSBuild Server não é usado para invocações inerentemente incompatíveis com a hospedagem do build em um processo separado, como -help, -versione a reprodução de um log binário. Essas compilações voltam a ser executadas durante o processo de inicialização.
Determinar o status atual do servidor de build
Você pode exibir o status do processo no computador 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 de comando /nodemode:8, em que 8 indica o Servidor MSBuild (/nodemode:1 indica os nós de trabalho normais do MSBuild).
Compilações que solicitam o MSBuild Server também registram o que acontece com ele. Execute com -v:diag, ou capture um log binário com -bl, para ver se o build inicia um novo servidor, reutiliza um em execução ou volta para um build em processo e por quê.