MSBuild больше не поддерживает вызов GetType()
MSBuild 17 больше не поддерживает вызов метода экземпляра GetType()
в функциях свойств. Этот метод допускал непредсказуемое выполнение кода во время вычислений и мог приводить к зависанию Visual Studio.
Представленные версии
.NET SDK 6.0.100-rc1
Прежнее поведение
Вызовы GetType()
в функциях свойств MSBuild выполнялись и иногда вызывали непредсказуемое поведение в Visual Studio.
Новое поведение
Начиная с пакета SDK для .NET 6 при вызове GetType()
в функции свойства MSBuild во время оценки проекта возникнет следующая ошибка времени компиляции:
Функция "GetType" в типе "System.String" недоступна для выполнения в качестве функции свойства MSBuild.
Категория изменения
Это изменение влияет на совместимость исходного кода.
Причина изменения
Эта функция не задокументирована или нечасто используется. Она приводила к проблемам с производительностью и надежностью при загрузке проекта, особенно в Visual Studio.
Этот шаблон использовался только в системе CBT, которая является нерекомендуемой.
Рекомендуемое действие
Замените все вызовы GetType()
на альтернативную логику MSBuild.
Затронутые API
Н/Д
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по