Opções de compatibilidade do MVC removidas

As APIs de versão de compatibilidade do MVC, como CompatibilityVersion eSetCompatibilityVersion, são removidas no ASP.NET Core 11. Essas APIs não operavam desde ASP.NET Core 3.0 e estavam marcadas como obsoletas desde ASP.NET Core 6.

Versão introduzida

.NET 11 Versão Prévia 7

Comportamento anterior

Anteriormente, as APIs de versão de compatibilidade existiam e podiam ser chamadas, mas produziam um aviso de obsoletão no momento do build e não tinham efeito no runtime:

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

Novo comportamento

A partir do ASP.NET Core 11, essas APIs não existem mais. O código que os invoca não compila, e os binários existentes que os referenciam falham em tempo de execução com um MissingMethodException ou TypeLoadException.

Tipo de mudança disruptiva

Essa alteração pode afetar a compatibilidade do código-fonte e a compatibilidade binária.

Motivo da alteração

As APIs estão marcadas como obsoletas desde ASP.NET Core 6 e não fizeram nada desde ASP.NET Core 3.0, portanto, não serviram nenhum valor. Para obter mais informações, consulte dotnet/aspnetcore#67077.

Remova qualquer uso dessas APIs. Por exemplo, altere o seguinte código:

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

Para:

services.AddMvc();

APIs afetadas

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