Opzioni di compatibilità MVC rimosse

Le API della versione di compatibilità MVC, ad esempio CompatibilityVersion e SetCompatibilityVersion, vengono rimosse in ASP.NET Core 11. Queste API non producevano alcun effetto a partire da ASP.NET Core 3.0 e sono state contrassegnate come obsolete a partire da ASP.NET Core 6.

Versione introdotta

.NET 11 Preview 7

Comportamento precedente

In precedenza, le API della versione di compatibilità esistevano e potevano essere chiamate, ma generavano un avviso di obsoletità in fase di compilazione e non avevano alcun effetto in fase di esecuzione:

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

Nuovo comportamento

A partire da ASP.NET Core 11, queste API non esistono più. Il codice che li richiama non viene compilato e i binari esistenti che vi fanno riferimento non riescono a essere eseguiti con un MissingMethodException o un TypeLoadException.

Tipo di cambiamento che interrompe la compatibilità

Questa modifica può influire sulla compatibilità dell'origine e sulla compatibilità binaria.

Motivo della modifica

Le API sono state contrassegnate come obsolete da ASP.NET Core 6 e non hanno fatto nulla da ASP.NET Core 3.0, quindi non hanno servito alcun valore. Per altre informazioni, vedere dotnet/aspnetcore#67077.

Rimuovere tutti gli utilizzi di queste API. Ad esempio, modificare il codice seguente:

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

A:

services.AddMvc();

Le API interessate

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