Udostępnij za pośrednictwem


Program MSBuild nie obsługuje już wywoływania metody GetType()

Program MSBuild 17 nie obsługuje już wywoływania GetType() metody wystąpienia w funkcjach właściwości. Ta metoda umożliwia nieprzewidywalne wykonywanie kodu podczas oceny i może spowodować zawieszenie programu Visual Studio.

Wprowadzona wersja

Zestaw .NET SDK 6.0.100-rc1

Poprzednie zachowanie

GetType() wywołania funkcji właściwości MSBuild wykonywane i czasami powodowały nieprzewidywalne zachowanie w programie Visual Studio.

Nowe zachowanie

Począwszy od zestawu .NET 6 SDK, jeśli wywołasz GetType() funkcję właściwości MSBuild, podczas oceny projektu zostanie wyświetlony następujący błąd czasu kompilacji:

Funkcja "GetType" w typie "System.String" nie jest dostępna do wykonania jako funkcja właściwości MSBuild.

Kategoria zmiany

Ta zmiana ma wpływ na zgodność ze źródłem.

Przyczyna wprowadzenia zmiany

Ta funkcja nie została udokumentowana lub powszechnie używana. Spowodowało to problemy z wydajnością i niezawodnością podczas ładowania projektu, zwłaszcza w programie Visual Studio.

Jedynym znanym typowym zastosowaniem tego wzorca było w systemie CBT, który został przestarzały.

Zamień wszystkie wywołania na GetType() alternatywną logikę MSBuild.

Dotyczy interfejsów API

Nie dotyczy