O que há de novo no MSBuild 17
Este artigo descreve atualizações significativas no MSBuild 17.0. Para obter as notas de lançamento detalhadas para cada versão, consulte lançamentos do MSBuild.
O MSBuild 17.0 foi fornecido com Visual Studio 2022 e .NET 6.0.
Caminho alterado
MSBuild é instalado na pasta \Current em cada versão do Visual Studio, e os executáveis estão na subpasta \Bin. Por exemplo, o caminho para MSBuild.exe instalado com o Visual Studio 2022 Community é C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\MSBuild.exe Você também pode usar o seguinte módulo do PowerShell para localizar o MSBuild: vssetup.powershell.
Propriedades alteradas
As seguintes propriedades do MSBuild foram atualizadas devido ao novo número de versão.
MSBuildToolsVersion
para esta versão das ferramentas permanece "Atual". A versão do assembly é a mesma do Visual Studio 2017 e do Visual Studio 2019, que é 15.1.0.0.VisualStudioVersion
para esta versão das ferramentas é "17.0"
64 bits
MSBuild.exe anteriormente tinha versões de 32 bits e 64 bits, mas agora, a versão de 64 bits é o padrão. O Visual Studio 2022 usa a versão de 64 bits do MSBuild para todas as compilações. A versão de 32 bits ainda está disponível, mas recomendamos mudar todas as compilações para a versão de 64 bits.
Para os proprietários de tarefas, isso significa que quando o MSBuild carrega sua tarefa, ele tentará carregá-la em um processo de 64 bits. Recomendamos que você considere atualizar suas tarefas para serem executadas em um processo de 64 bits, mas para compatibilidade, você pode dizer ao MSBuild que sua tarefa é executada como 32 bits somente em seus UsingTask.
Melhorias de desempenho
O MSBuild é mais rápido! O foco desta versão tem sido melhorar o desempenho para muitos cenários comuns. MSBuild 17.0 pode construir projetos maiores, mais rápido.
Versões do .NET
O MSBuild (e o Visual Studio) agora tem como alvo o .NET Framework 4.7.2 e o .NET 6.0. Se você deseja usar novos recursos da API do MSBuild, seu assembly também deve ser atualizado, mas o código existente continuará a funcionar.
Registos
Os logs binários são menores e têm mais informações.
No MSBuild 17.8 e posterior, tente o novo Terminal Logger (opção-terminalLogger
ou -tl
na linha de comando) para melhorar a saída do console.
Mudanças significativas
- O método
GetType()
não pode mais ser chamado em funções de propriedade. - MSBuild para .NET tem como alvo o .NET 6.
Outras mudanças de comportamento
-
MSBuildCopyContentTransitively
agora está ativado por padrão, garantindo consistência nas pastas de saída em compilações incrementais.
Para obter mais alterações nesta versão, consulte as notas de versão detalhadas e, para alterações nas versões do MSBuild das quais pode optar por não usar, consulte ondas de alteração.