Opções de compatibilidade com MVC removidas

As APIs da versão de compatibilidade MVC, como CompatibilityVersion e SetCompatibilityVersion, foram removidas no ASP.NET Core 11. Estas APIs eram no-ops desde o ASP.NET Core 3.0 e têm sido consideradas obsoletas desde o ASP.NET Core 6.

Versão introduzida

.NET 11 Preview 7

Comportamento anterior

Anteriormente, existiam APIs de versões de compatibilidade que podiam ser chamadas, mas produziam um aviso de obsolescência em tempo de compilação e não tinham efeito em tempo de execução:

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

Novo comportamento

A partir do ASP.NET Core 11, estas APIs deixaram de existir. O código que os chama 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 de origem e a compatibilidade binária.

Motivo da mudança

As APIs têm sido consideradas obsoletas desde o ASP.NET Core 6 e não fizeram nada desde o ASP.NET Core 3.0, pelo que não tinham qualquer valor. Para mais informações, veja dotnet/aspnetcore#67077.

Remova quaisquer utilizações destas 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