Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Interfejsy API zgodności MVC, takie jak CompatibilityVersion i SetCompatibilityVersion, zostały usunięte w ASP.NET Core 11. Te interfejsy API nie wykonywały żadnej operacji od wersji ASP.NET Core 3.0 i od wersji ASP.NET Core 6 są oznaczone jako przestarzałe.
Wersja wprowadzona
.NET 11 (wersja zapoznawcza 7)
Poprzednie zachowanie
Wcześniej interfejsy API wersji zgodności istniały i można było je wywoływać, ale powodowały ostrzeżenie o wycofaniu z użycia podczas kompilacji i nie miały żadnego efektu w czasie wykonywania:
services.AddMvc()
.SetCompatibilityVersion(CompatibilityVersion.Latest);
Nowe zachowanie
Począwszy od ASP.NET Core 11, te interfejsy API już nie istnieją. Kod, który się do nich odwołuje, nie kompiluje się, a istniejące pliki binarne, które się do nich odwołują, powodują błąd w czasie wykonywania z komunikatem MissingMethodException lub TypeLoadException.
Typ zmiany przełamującej
Ta zmiana może mieć wpływ na zgodność źródła i zgodność binarną.
Przyczyna zmiany
Interfejsy API są oznaczone jako przestarzałe od wersji ASP.NET Core 6 i nie miały żadnego działania od ASP.NET Core 3.0, więc nie wnosiły żadnej wartości. Aby uzyskać więcej informacji, zobacz dotnet/aspnetcore#67077.
Zalecana akcja
Usuń wszystkie użycia tych interfejsów API. Na przykład zmień następujący kod:
services.AddMvc()
.SetCompatibilityVersion(CompatibilityVersion.Latest);
Do:
services.AddMvc();
Interfejsy API, których dotyczy problem
Microsoft.Extensions.DependencyInjection.MvcCoreMvcBuilderExtensions.SetCompatibilityVersionMicrosoft.Extensions.DependencyInjection.MvcCoreMvcCoreBuilderExtensions.SetCompatibilityVersionMicrosoft.AspNetCore.Mvc.Infrastructure.ConfigureCompatibilityOptions<TOptions>Microsoft.AspNetCore.Mvc.MvcCompatibilityOptionsMicrosoft.AspNetCore.Mvc.CompatibilityVersion