Opciones de compatibilidad de MVC eliminadas

Las API de la versión de compatibilidad de MVC, como CompatibilityVersion y SetCompatibilityVersion, se quitan en ASP.NET Core 11. Estas API no tenían ningún efecto desde ASP.NET Core 3.0 y se marcaron como obsoletas desde ASP.NET Core 6.

Versión introducida

.NET 11 Preview 7

Comportamiento anterior

Anteriormente, existían las API de versión de compatibilidad y podían llamarse, pero generaron una advertencia de obsolescencia en tiempo de compilación y no tuvieron ningún efecto en tiempo de ejecución:

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

Nuevo comportamiento

A partir de ASP.NET Core 11, estas API ya no existen. El código que los llama no compila, y los archivos binarios existentes que hacen referencia a ellos generan un error en tiempo de ejecución con un MissingMethodException o un TypeLoadException.

Tipo de cambio disruptivo

Este cambio puede afectar a la compatibilidad de origen y la compatibilidad binaria.

Motivo del cambio

Las API se han marcado como obsoletas desde ASP.NET Core 6 y no hicieron nada desde ASP.NET Core 3.0, por lo que no sirven ningún valor. Para obtener más información, vea dotnet/aspnetcore#67077.

Quite los usos de estas API. Por ejemplo, cambie el código siguiente:

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

Por:

services.AddMvc();

Las APIs afectadas

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