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).
Os aplicativos de microsserviço são compostos por serviços pequenos e com versão independente e serviços escalonáveis focados no cliente que se comunicam entre si usando protocolos padrão e interfaces bem definidas. Cada microsserviço normalmente encapsula uma logica de negócios simples, que você pode escalar horizontalmente ou parcialmente. Teste, implante e gerencie o microsserviço de forma independente. Equipes menores desenvolvem um microsserviço com base em um cenário de cliente e escolhem as tecnologi
Saiba mais sobre as propriedades comuns do projeto do MSBuild que podem ser definidas ou usadas em arquivos de projeto ou incluídas em arquivos .targets que o MSBuild fornece.
Descubra como o MSBuild processa seus arquivos de projeto, quer você invoque a ferramenta de build do Visual Studio ou de uma linha de comando ou script.
Explore como a tarefa do MSBuild usa o mesmo processo do MSBuild para criar projetos filho de outro projeto do MSBuild e examinar as propriedades e metadados aplicáveis.
Saiba mais sobre as propriedades reservadas e conhecidas do MSBuild, propriedades predefinidas que armazenam informações sobre o arquivo de projeto e os binários do MSBuild.