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.
Zalecana akcja
Zamień wszystkie wywołania na GetType()
alternatywną logikę MSBuild.
Dotyczy interfejsów API
Nie dotyczy
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla