MVC 互換性オプションが削除されました

CompatibilityVersionSetCompatibilityVersionなどの MVC 互換性バージョン API は、ASP.NET Core 11 で削除されます。 これらの API は、ASP.NET Core 3.0 以降は運用されておらず、ASP.NET Core 6 以降は廃止されています。

導入されたバージョン

.NET 11 Preview 7

以前の動作

以前は、互換性バージョンの API が存在し、呼び出される可能性がありましたが、ビルド時に旧形式の警告が生成され、実行時には影響を与えませんでした。

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

新しい動作

ASP.NET Core 11 以降では、これらの API は存在しなくなりました。 それらを呼び出すコードはコンパイルに失敗し、それらを参照する既存のバイナリは実行時に MissingMethodException または TypeLoadExceptionで失敗します。

破壊的変更の種類

この変更は、 ソースの互換性バイナリの互換性に影響する可能性があります。

変更理由

API は ASP.NET Core 6 以降、古い形式としてマークされており、ASP.NET Core 3.0 以降は何も行わなかったため、値は提供されませんでした。 詳細については、 dotnet/aspnetcore#67077 を参照してください。

これらの API の使用を削除します。 たとえば、次のコードを変更します。

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

宛先:

services.AddMvc();

影響を受ける API

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