MVC-kompatibilitetsalternativ har tagits bort

API:er för MVC-kompatibilitetsversion, till exempel CompatibilityVersion och SetCompatibilityVersion, tas bort i ASP.NET Core 11. Dessa API:er har inte använts sedan ASP.NET Core 3.0 och har markerats som föråldrade sedan ASP.NET Core 6.

Version lanserad

.NET 11 Förhandsversion 7

Tidigare beteende

Tidigare fanns API:er för kompatibilitetsversion och kunde anropas, men de skapade en obsoletionsvarning vid byggtiden och hade ingen effekt vid körning:

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

Nytt beteende

Från och med ASP.NET Core 11 finns dessa API:er inte längre. Kod som anropar dem kan inte kompileras och befintliga binärfiler som refererar till dem misslyckas vid körning med en MissingMethodException eller TypeLoadException.

Typ av brytande ändring

Den här ändringen kan påverka källkompatibilitet och binär kompatibilitet.

Orsak till ändringen

API:erna har markerats som föråldrade sedan ASP.NET Core 6 och gjorde ingenting sedan ASP.NET Core 3.0, så de tjänade inget värde. Mer information finns i dotnet/aspnetcore#67077.

Ta bort alla användningar av dessa API:er. Ändra till exempel följande kod:

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

Till:

services.AddMvc();

Berörda API:er

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