Compartilhar via


O MSBuild não oferece mais suporte à chamada GetType()

O MSBuild 17 não oferece mais suporte à chamada do método de instância GetType() nas funções de propriedade. Esse método permitia a execução imprevisível de código durante a avaliação e pode causar travamentos no Visual Studio.

Versão introduzida

.NET SDK 6.0.100-rc1

Comportamento anterior

Chamadas GetType() em funções de propriedade MSBuild eram executadas e, às vezes, causavam comportamento imprevisível no Visual Studio.

Novo comportamento

A partir do SDK do .NET 6, se você chamar GetType() uma função de propriedade MSBuild, verá o seguinte erro de tempo de compilação durante a avaliação do projeto:

A função "GetType" no tipo "System.String" não está disponível para execução como função de propriedade MSBuild.

Alterar categoria

Essa alteração afeta a compatibilidade de origem.

Motivo da alteração

Essa funcionalidade não foi documentada ou comumente usada. Isso causou problemas de desempenho e confiabilidade com o carregamento do projeto, especialmente no Visual Studio.

O único uso comum conhecido desse padrão foi no sistema CBT, que foi preterido.

Substitua todas as chamadas a GetType() pela lógica alternativa do MSBuild.

APIs afetadas

N/D