Ler em inglês

Compartilhar via


Servidor MSBuild

O MSBuild Server melhora o desempenho de builds do .NET Core, que são invocados quando você usa o comando dotnet build da CLI do .NET em ambientes de build .NET Core do Windows, do Linux ou do Mac. Em vez de iniciar o processo de compilação 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 builds do Visual Studio, pois o 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 builds do Azure Pipeline, pois os pipelines normalmente criam um ambiente de build sob demanda para cada build e, em seguida, descartam-no quando o build é concluído.

Habilitar o MSBuild Server

O servidor MSBuild não está habilitado por padrão; para habilitá-lo, defina a variável de ambiente DOTNET_CLI_USE_MSBUILD_SERVER como true ou 1.

Uma vez habilitado, na primeira vez em que você iniciar um novo processo de build, o servidor de build será iniciado. Quando você inicia o primeiro build, ele habilita o cache. O cache é mantido após a conclusão do primeiro 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, ele é desligado. Ou seja, ele é principalmente benéfico em cenários repetitivos de build em que muitos builds são solicitados quase em sequência.

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 de ambiente do sistema DOTNET_CLI_USE_MSBUILD_SERVER como 0 ou false. Você também pode definir essa variável com base em cada projeto em uma ferramenta como o VS Code em launch.json.

Para desabilitar o Servidor MSBuild para uma invocação específica de um build de linha de comando, você poderá usar a opção /nr:false (ou /node-reuse:false).

Para desabilitar totalmente o recurso, você poderá recusar a onda de alterações que o habilitou; SET MSBuildDisableFeaturesFromVersion="17.4". Isso desabilitou outros recursos na mesma onda de alterações. Para obter mais informações sobre as ondas de alteração, confira Ondas de alteração do MSBuild.

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 do MSBuild normais).

Confira também