Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
If you're migrating an app to .NET 10, the breaking changes listed here might affect you. Changes are grouped by technology area, such as ASP.NET Core or Windows Forms.
This article categorizes each breaking change as binary incompatible or source incompatible, or as a behavioral change:
Binary incompatible - When run against the new runtime or component, existing binaries may encounter a breaking change in behavior, such as failure to load or execute, and if so, require recompilation.
Source incompatible - When recompiled using the new SDK or component or to target the new runtime, existing source code may require source changes to compile successfully.
Behavioral change - Existing code and binaries may behave differently at run time. If the new behavior is undesirable, existing code would need to be updated and recompiled.
Note
This article is a work in progress. It's not a complete list of breaking changes in .NET 10.
ASP.NET Core
Title | Type of change | Introduced version |
---|---|---|
Cookie login redirects disabled for known API endpoints | Behavioral change | Preview 7 |
Deprecation of WithOpenApi extension method | Source incompatible | Preview 7 |
Exception diagnostics suppressed when TryHandleAsync returns true | Behavioral change | Preview 7 |
IActionContextAccessor and ActionContextAccessor are obsolete | Source incompatible/behavioral change | Preview 7 |
IncludeOpenAPIAnalyzers property and MVC API analyzers are deprecated | Source incompatible | Preview 7 |
IPNetwork and ForwardedHeadersOptions.KnownNetworks are obsolete | Source incompatible | Preview 7 |
Microsoft.Extensions.ApiDescription.Client package deprecated | Source incompatible | Preview 7 |
Razor run-time compilation is obsolete | Source incompatible | Preview 7 |
Containers
Title | Type of change | Introduced version |
---|---|---|
Default .NET images use Ubuntu | Behavioral change | Preview 1 |
Core .NET libraries
Entity Framework Core
Breaking changes in EF Core 10
Extensions
Title | Type of change | Introduced version |
---|---|---|
Null values preserved in configuration | Behavioral change | Preview 7 |
Message no longer duplicated in Console log output | Behavioral change | Preview 7 |
ProviderAliasAttribute moved to Microsoft.Extensions.Logging.Abstractions assembly | Source incompatible | Preview 4 |
Removed DynamicallyAccessedMembers annotation from trim-unsafe Microsoft.Extensions.Configuration code | Binary incompatible | Preview 6 |
Globalization
Title | Type of change | Introduced version |
---|---|---|
Environment variable renamed to DOTNET_ICU_VERSION_OVERRIDE | Behavioral change | Preview 1 |
Cryptography
Title | Type of change | Introduced version |
---|---|---|
CoseSigner.Key can be null | Behavioral/source incompatible change | Preview 7 |
OpenSSL cryptographic primitives aren't supported on macOS | Behavioral change | Preview 6 |
X500DistinguishedName validation is stricter | Behavioral change | Preview 1 |
X509Certificate and PublicKey key parameters can be null | Behavioral/source incompatible change | Preview 3 |
Environment variable renamed to DOTNET_OPENSSL_VERSION_OVERRIDE | Behavioral change | Preview 1 |
Interop
Title | Type of change | Introduced version |
---|---|---|
Single-file apps no longer look for native libraries in executable directory | Behavioral change | Preview 6 |
Specifying DllImportSearchPath.AssemblyDirectory only searches the assembly directory | Behavioral change | Preview 5 |
Networking
Title | Type of change | Introduced version |
---|---|---|
HTTP/3 support disabled by default with PublishTrimmed | Source incompatible | Preview 6 |
HttpClient/SslStream default certificate revocation check mode changed to Online | Behavioral change | Preview 6 |
Streaming HTTP responses enabled by default in browser HTTP clients | Behavioral change | Preview 3 |
Uri length limits removed |
Behavioral change | Preview 7 |
SDK and MSBuild
Windows Forms
Title | Type of change | Introduced version |
---|---|---|
API obsoletions | Source incompatible | Preview 1 |
Applications referencing both WPF and WinForms must disambiguate MenuItem and ContextMenu types | Source incompatible | Preview 1 |
Renamed parameter in HtmlElement.InsertAdjacentElement | Source incompatible | Preview 1 |
TreeView checkbox image truncation | Behavioral change | Preview 1 |
StatusStrip uses System RenderMode by default | Behavioral change | Preview 1 |
System.Drawing OutOfMemoryException changed to ExternalException | Behavioral change | Preview 5 |
Windows Presentation Foundation (WPF)
Title | Type of change | Introduced version |
---|---|---|
Empty ColumnDefinitions and RowDefinitions are disallowed | Source incompatible | Preview 5 |
Incorrect usage of DynamicResource causes application crash | Source incompatible/behavioral change | Preview 4 |