Icke-bakåtkompatibla ändringar i .NET 8
Om du migrerar en app till .NET 8 kan de icke-bakåtkompatibla ändringarna som anges här påverka dig. Ändringar grupperas efter teknikområde, till exempel ASP.NET Core eller Windows Forms.
Den här artikeln kategoriserar varje icke-bakåtkompatibel ändring som binärt inkompatibelt eller källkompatibelt, eller som en beteendeförändring:
Binärt inkompatibelt – När det körs mot den nya körningen eller komponenten kan befintliga binärfiler stöta på en icke-bakåtkompatibel beteendeförändring, till exempel att det inte går att läsa in eller köra, och i så fall kräva omkompilering.
Inkompatibel källa – När den omkompileras med den nya SDK:n eller komponenten eller för att rikta in sig på den nya körningen kan befintlig källkod kräva källändringar för att kompilera korrekt.
Beteendeförändring – Befintlig kod och binärfiler kan bete sig annorlunda vid körning. Om det nya beteendet är oönskat måste befintlig kod uppdateras och kompileras om.
ASP.NET Core
Title | Typ av ändring |
---|---|
ConcurrencyLimiterMiddleware är föråldrat | Källkompatibel |
Anpassade konverterare för serialisering har tagits bort | Beteendeförändring |
ISystemClock är föråldrat | Källkompatibel |
Minimala API:er: IFormFile-parametrar kräver kontroller mot förfalskning | Beteendeförändring |
Hastighetsbegränsning av mellanprogram kräver AddRateLimiter | Beteendeförändring |
Säkerhetstokenhändelser returnerar en JsonWebToken | Beteendeförändring |
TrimMode är som standard fullt för Web SDK-projekt | Källkompatibel |
Containers
Title | Typ av ändring |
---|---|
Paketet "ca-certificates" har tagits bort från Alpine-avbildningar | Binärt inkompatibelt |
Debian-containeravbildningar uppgraderade till Debian 12 | Binär inkompatibel/beteendeförändring |
Standardporten för ASP.NET Core har ändrats till 8080 | Beteendeförändring |
Kerberos-paketet har tagits bort från Alpine- och Debian-avbildningar | Binärt inkompatibelt |
Libintl-paketet har tagits bort från alpine-avbildningar | Beteendeförändring |
Containertaggar för flera plattformar är endast Linux | Beteendeförändring |
Ny appanvändare i Linux-avbildningar | Beteendeförändring |
Core .NET-bibliotek
Kryptografi
Title | Typ av ändring | Introducerade |
---|---|---|
AesGcm-autentiseringstaggstorlek på macOS | Beteendeförändring | Förhandsversion 1 |
RSA. EncryptValue och RSA. DecryptValue föråldrad | Källkompatibel | Förhandsversion 1 |
Distribution
Title | Typ av ändring |
---|---|
Värden bestämmer RID-specifika tillgångar | Binär inkompatibel/beteendeförändring |
.NET Monitor innehåller endast distrolösa bilder | Beteendeförändring |
StripSymbols är som standard true | Beteendeförändring |
Entity Framework Core
Icke-bakåtkompatibla ändringar i EF Core 8
Tillägg
Title | Typ av ändring |
---|---|
ActivatorUtilities.CreateInstance fungerar konsekvent | Beteendeförändring |
ActivatorUtilities.CreateInstance kräver icke-null-provider | Beteendeförändring |
ConfigurationBinder genererar felmatchat värde | Beteendeförändring |
ConfigurationManager-paketet refererar inte längre till System.Security.Permissions | Källkompatibel |
DirectoryServices-paketet refererar inte längre till System.Security.Permissions | Källkompatibel |
Tomma nycklar har lagts till i ordlistan efter konfigurationsbindning | Beteendeförändring |
HostApplicationBuilderSettings.Args respekteras av HostApplicationBuilder ctor | Beteendeförändring |
ManagementDateTimeConverter.ToDateTime returnerar en lokal tid | Beteendeförändring |
Formateringsändring för System.Formats.Cbor DateTimeOffset | Beteendeförändring |
Globalisering
Title | Typ av ändring |
---|---|
Datum- och tidskonverterare respekterar kulturargument | Beteendeförändring |
TwoDigitYearMax standard är 2049 | Beteendeförändring |
Interop
Title | Typ av ändring |
---|---|
CreateObjectFlags.Unwrap packar bara upp på målinstansen | Beteendeförändring |
Anpassade marshallers kräver ytterligare medlemmar | Källkompatibel |
API:et IDispatchImplAttribute tas bort | Binärt inkompatibelt |
JSFunctionBinding implicit offentlig standardkonstruktor borttagen | Binärt inkompatibelt |
SafeHandle-typer måste ha en offentlig konstruktor | Källkompatibel |
Nätverk
Title | Typ av ändring |
---|---|
SendFile genererar NotSupportedException för anslutningslösa socketar | Beteendeförändring |
Användarinformation i mailto: URI:er jämförs |
Beteendeförändring |
Reflektion
Title | Typ av ändring |
---|---|
IntPtr används inte längre för funktionspekartyper | Beteendeförändring |
SDK
Serialisering
Title | Typ av ändring |
---|---|
BinaryFormatter inaktiverad för de flesta projekt | Beteendeförändring |
PublishedTrimmed-projekt misslyckas med reflektionsbaserad serialisering | Beteendeförändring |
Reflektionsbaserad deserializer löser metadata ivrigt | Beteendeförändring |
Windows Forms
Title | Typ av ändring |
---|---|
Ändringar i fästpunktslayout | Beteendeförändring |
Certifikat kontrolleras innan fjärrbilder läses in i PictureBox | Beteendeförändring |
DateTimePicker.Text är tom sträng | Beteendeförändring |
DefaultValueAttribute har tagits bort från vissa egenskaper | Beteendeförändring |
ExceptionCollection-ctor genererar ArgumentException | Beteendeförändring |
Formulär skalas enligt AutoScaleMode | Beteendeförändring |
ImageList.ColorDepth standard är Depth32Bit | Beteendeförändring |
System.Windows.Extensions refererar inte till System.Drawing.Common | Källkompatibel |
TableLayoutStyleCollection genererar ArgumentException | Beteendeförändring |
Formulär på översta nivån skalar minsta och högsta storlek till DPI | Beteendeförändring |
WFDEV002 obsoletion är nu ett fel | Källkompatibel |