Edit

Breaking changes in ASP.NET Core 6

If you're migrating an app to ASP.NET Core 6, the breaking changes listed here might affect you.

This article indicates whether each breaking change is binary compatible or source compatible:

  • Binary compatible - Existing binaries will load and execute successfully without recompilation, and the runtime behavior won't change.
  • Source compatible - Source code will compile successfully without changes when targeting the new runtime or using the new SDK or component.
Title Binary compatible Source compatible
ActionResult<T> sets StatusCode to 200 ✔️
AddDataAnnotationsValidation method made obsolete ✔️
Assemblies removed from Microsoft.AspNetCore.App shared framework ✔️
Blazor: Parameter name changed in RequestImageFileAsync method ✔️
Blazor: WebEventDescriptor.EventArgsType property replaced
Blazor: Byte array interop ✔️
Changed MessagePack library in @microsoft/signalr-protocol-msgpack ✔️
ClientCertificate property doesn't trigger renegotiation for HttpSys ✔️
EndpointName metadata not set automatically ✔️
Identity: Default Bootstrap version of UI changed
Kestrel: Log message attributes changed ✔️
Microsoft.AspNetCore.Http.Features split ✔️
Middleware: HTTPS redirection middleware throws exception on ambiguous HTTPS ports ✔️
Middleware: New Use overload ✔️
Minimal API renames in RC 1
Minimal API renames in RC 2
MVC doesn't buffer IAsyncEnumerable types when using System.Text.Json ✔️
Nullable reference type annotations changed ✔️
Obsoleted and removed APIs ✔️
PreserveCompilationContext not configured by default ✔️
Razor: Compiler no longer produces a Views assembly ✔️
Razor: Logging ID changes ✔️
Razor: RazorEngine APIs marked obsolete ✔️
SignalR: Java Client updated to RxJava3 ✔️
TryParse and BindAsync methods are validated