Удалены параметры совместимости MVC

API-интерфейсы версии совместимости MVC, такие как CompatibilityVersion и SetCompatibilityVersion, удаляются в ASP.NET Core 11. Эти API не выполняли никаких действий, начиная с ASP.NET Core 3.0, и помечены как устаревшие, начиная с ASP.NET Core 6.

Представленная версия

.NET 11 предварительная версия 7

Предыдущее поведение

Ранее API версии совместимости существовали и могли вызываться, но на этапе сборки они выдавали предупреждение об устаревании и не имели никакого эффекта во время выполнения:

services.AddMvc()
    .SetCompatibilityVersion(CompatibilityVersion.Latest);

Новое поведение

Начиная с ASP.NET Core 11 эти API больше не существуют. Код, который обращается к ним, не компилируется, а существующие бинарные файлы, которые на них ссылаются, завершаются с ошибкой во время выполнения, выдавая MissingMethodException или TypeLoadException.

Тип разрушающего изменения

Это изменение может повлиять на совместимость источников и совместимость двоичных файлов.

Причина изменения

API помечены как устаревшие начиная с ASP.NET Core 6 и ничего не делали начиная с ASP.NET Core 3.0, поэтому не приносили никакой пользы. Дополнительные сведения см. в статье dotnet/aspnetcore#67077.

Удалите все виды использования этих API. Например, измените следующий код:

services.AddMvc()
    .SetCompatibilityVersion(CompatibilityVersion.Latest);

Кому:

services.AddMvc();

Затронутые API

  • Microsoft.Extensions.DependencyInjection.MvcCoreMvcBuilderExtensions.SetCompatibilityVersion
  • Microsoft.Extensions.DependencyInjection.MvcCoreMvcCoreBuilderExtensions.SetCompatibilityVersion
  • Microsoft.AspNetCore.Mvc.Infrastructure.ConfigureCompatibilityOptions<TOptions>
  • Microsoft.AspNetCore.Mvc.MvcCompatibilityOptions
  • Microsoft.AspNetCore.Mvc.CompatibilityVersion