Edit

Share via


Breaking changes in .NET 8

If you're migrating an app to .NET 8, 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.

ASP.NET Core

Containers

Core .NET libraries

Cryptography

Title Type of change Introduced
AesGcm authentication tag size on macOS Behavioral change Preview 1
RSA.EncryptValue and RSA.DecryptValue obsolete Source incompatible Preview 1

Deployment

Title Type of change
Host determines RID-specific assets Binary incompatible/behavioral change
.NET Monitor only includes distroless images Behavioral change
StripSymbols defaults to true Behavioral change

Entity Framework Core

Breaking changes in EF Core 8

Extensions

Globalization

Title Type of change
Date and time converters honor culture argument Behavioral change
TwoDigitYearMax default is 2049 Behavioral change

Interop

Networking

Reflection

Title Type of change
IntPtr no longer used for function pointer types Behavioral change

SDK

Serialization

Windows Forms

See also