Edit

Share via


Breaking changes in .NET 10

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

Containers

Title Type of change Introduced version
Default .NET images use Ubuntu Behavioral change Preview 1

Core .NET libraries

Cryptography

Title Type of change Introduced version
CoseSigner.Key can be null Behavioral/source incompatible change Preview 7
MLDsa and SlhDsa 'SecretKey' members renamed Source incompatible RC 1
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

Entity Framework Core

Breaking changes in EF Core 10

Extensions

Globalization

Title Type of change Introduced version
Environment variable renamed to DOTNET_ICU_VERSION_OVERRIDE Behavioral change Preview 1

Interop

Networking

Title Type of change Introduced version
HTTP/3 support disabled by default with PublishTrimmed Source incompatible 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

Title Type of change Introduced version
.NET CLI --interactive defaults to true in user scenarios Behavioral change Preview 3
.NET tool packaging creates RuntimeIdentifier-specific tool packages Behavioral change Preview 6
Default workload configuration from 'loose manifests' to 'workload sets' mode Behavioral change Preview 2
dotnet new sln defaults to SLNX file format Behavioral change RC 1
dotnet package list performs restore Behavioral change Preview 4
dotnet restore audits transitive packages Behavioral change Preview 3
dotnet tool install --local creates manifest by default Behavioral change Preview 7
project.json not supported in dotnet restore Source incompatible Preview 7
SHA-1 fingerprint support deprecated in dotnet nuget sign Behavioral change Preview 1
MSBUILDCUSTOMBUILDEVENTWARNING escape hatch removed Behavioral change Preview 1
MSBuild custom culture resource handling Behavioral change Preview 1
NU1510 is raised for direct references pruned by NuGet Source incompatible Preview 1
NuGet packages with no runtime assets aren't included in deps.json Source incompatible Preview 5
PackageReference without a version raises an error Behavioral change Preview 6
PrunePackageReference privatizes direct prunable references Behavioral change Preview 7
HTTP warnings promoted to errors in dotnet package list and dotnet package search Behavioral/source incompatible change Preview 4
NUGET_ENABLE_ENHANCED_HTTP_RETRY environment variable removed Behavioral change Preview 6
NuGet logs an error for invalid package IDs Behavioral change RC 1

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
Note: The author created this article with assistance from AI. Learn more

Additional resources

Events

.NET Conf 2025

Sep 19, 3 PM - Sep 19, 3 PM

.NET 10 launches at .NET Conf 2025! Tune in with the .NET community to celebrate and learn about the new release on November 11 - 13.

Save the date