Belangrijke wijzigingen in .NET 8

Als u een app migreert naar .NET 8, kunnen de belangrijke wijzigingen die hier worden vermeld, van invloed zijn op u. Wijzigingen worden gegroepeerd op technologiegebied, zoals ASP.NET Core of Windows Forms.

Dit artikel categoriseert elke wijziging die fouten veroorzaken als binair niet compatibel of bron, of als gedragswijziging:

  • Binair incompatibel : wanneer deze worden uitgevoerd op basis van de nieuwe runtime of het nieuwe onderdeel, kunnen bestaande binaire bestanden een belangrijke wijziging in gedrag tegenkomen, zoals het laden of uitvoeren van bestanden, en als dat het probleem is, moet opnieuw worden gecompileerd.

  • Bron is niet compatibel : wanneer deze opnieuw wordt gecompileerd met behulp van de nieuwe SDK of het nieuwe onderdeel of om de nieuwe runtime te targeten, kan het zijn dat voor bestaande broncode bronwijzigingen moeten worden gecompileerd.

  • Gedragswijziging : bestaande code en binaire bestanden kunnen zich tijdens runtime anders gedragen. Als het nieuwe gedrag ongewenst is, moet bestaande code worden bijgewerkt en opnieuw worden gecompileerd.

ASP.NET Core

Titel Type wijziging
ConcurrencyLimiterMiddleware is verouderd Bron is niet compatibel
Aangepaste conversieprogramma's voor serialisatie verwijderd Gedragswijziging
ISystemClock is verouderd Bron is niet compatibel
Minimale API's: IFormFile-parameters vereisen antivervalsingscontroles Gedragswijziging
Voor de snelheidsbeperking van middleware is AddRateLimiter vereist Gedragswijziging
Beveiligingstoken-gebeurtenissen retourneren een JsonWebToken Gedragswijziging
TrimMode is standaard vol voor Web SDK-projecten Bron is niet compatibel

Containers

Titel Type wijziging
'ca-certificates'-pakket verwijderd uit Alpine-installatiekopieën Binair niet compatibel
Debian-containerinstallatiekopieën bijgewerkt naar Debian 12 Binaire incompatibele/gedragswijziging
Standaardpoort ASP.NET Core is gewijzigd in 8080 Gedragswijziging
Kerberos-pakket verwijderd uit Alpine- en Debian-installatiekopieën Binair niet compatibel
'libintl'-pakket verwijderd uit Alpine images Gedragswijziging
Containertags met meerdere platforms zijn alleen Linux Gedragswijziging
Nieuwe app-gebruiker in Linux-installatiekopieën Gedragswijziging

Core .NET-bibliotheken

Titel Type wijziging
Naam van activiteitsbewerking wanneer null Gedragswijziging
AnonymousPipeServerStream.Dispose-gedrag Gedragswijziging
API-buitenzool met aangepaste diagnostische id's Bron is niet compatibel
Backslash-toewijzing in Unix-bestandspaden Gedragswijziging
Base64.DecodeFromUtf8-methoden negeren witruimte Gedragswijziging
Booleaanse ondersteuning voor opsommingstype verwijderd Gedragswijziging
Opsomming van huidige mappad van station Gedragswijziging
Enumerable.Sum genereert nieuwe OverflowException voor sommige invoer Gedragswijziging
FileStream schrijft wanneer pijp wordt gesloten Gedragswijziging
FindSystemTimeZoneById retourneert geen nieuw object Gedragswijziging
GC. GetGeneration retourneert mogelijk Int32.MaxValue Gedragswijziging
GetFolderPath-gedrag op Unix Gedragswijziging
GetSystemVersion retourneert ImageRuntimeVersion niet meer Gedragswijziging
ITypeDescriptorContext nullable annotaations Bron is niet compatibel
Verouderde console.ReadKey verwijderd Gedragswijziging
Methodebouwers genereren parameters met HasDefaultValue ingesteld op false Gedragswijziging
ProcessStartInfo.WindowStyle gehonoreerd wanneer UseShellExecute onwaar is Gedragswijziging
RuntimeIdentifier retourneert het platform waarvoor runtime is gebouwd Gedragswijziging
Type.GetType genereert uitzondering voor alle ongeldige elementtypen Gedragswijziging

Cryptografie

Titel Type wijziging Geïntroduceerd
AesGcm-verificatietaggrootte in macOS Gedragswijziging Preview 1
RSA. EncryptValue en RSA. DecryptValue verouderd Bron is niet compatibel Preview 1

Implementatie

Titel Type wijziging
Host bepaalt rid-specifieke assets Binaire incompatibele/gedragswijziging
.NET Monitor bevat alleen distributieloze installatiekopieën Gedragswijziging
StripSymbols is standaard ingesteld op true Gedragswijziging

Entity Framework Core

Belangrijke wijzigingen in EF Core 8

Uitbreidingen

Titel Type wijziging
ActivatorUtilities.CreateInstance gedraagt zich consistent Gedragswijziging
ActivatorUtilities.CreateInstance vereist een niet-null-provider Gedragswijziging
ConfigurationBinder genereert voor niet-overeenkomende waarde Gedragswijziging
Het ConfigurationManager-pakket verwijst niet meer naar System.Security.Permissions Bron is niet compatibel
DirectoryServices-pakket verwijst niet langer naar System.Security.Permissions Bron is niet compatibel
Lege sleutels toegevoegd aan woordenlijst door configuratiebinding Gedragswijziging
HostApplicationBuilder Instellingen. Args gerespecteerd door HostApplicationBuilder ctor Gedragswijziging
ManagementDateTimeConverter.ToDateTime retourneert een lokale tijd Gedragswijziging
System.Formats.Cbor DateTimeOffset-opmaakwijziging Gedragswijziging

Globalisatie

Titel Type wijziging
Datum- en tijdconversieprogramma's respecteren cultuurargument Gedragswijziging
Standaard twoDigitYearMax is 2049 Gedragswijziging

Interop

Titel Type wijziging
CreateObjectFlags.Unwraps only unwraps on target instance Gedragswijziging
Voor aangepaste marshallers zijn extra leden vereist Bron is niet compatibel
IDispatchImplAttribute-API is verwijderd Binair niet compatibel
Impliciete openbare standaardconstructor JSFunctionBinding verwijderd Binair niet compatibel
SafeHandle-typen moeten openbare constructor hebben Bron is niet compatibel

Netwerken

Titel Type wijziging
SendFile genereert NotSupportedException voor verbindingsloze sockets Gedragswijziging

Reflectie

Titel Type wijziging
IntPtr wordt niet meer gebruikt voor functiepointertypen Gedragswijziging

SDK

Titel Type wijziging
CLI-console-uitvoer maakt gebruik van UTF-8 Gedragswijziging/Bron en binair niet compatibel
Consolecodering niet UTF-8 na voltooiing Gedragswijziging/Binair niet compatibel
Containers gebruiken standaard de tag 'nieuwste' Gedragswijziging
'dotnet pack' maakt gebruik van releaseconfiguratie Gedragswijziging/bron is niet compatibel
'dotnet publish' maakt gebruik van releaseconfiguratie Gedragswijziging/bron is niet compatibel
Dubbele uitvoer voor -getItem, -getProperty en -getTargetResult Gedragswijziging
Impliciet using voor System.Net.Http is niet meer toegevoegd Gedragswijziging/bron is niet compatibel
Aangepaste msBuild-build-gebeurtenissen afgeschaft Gedragswijziging
MSBuild respecteert DOTNET_CLI_UI_LANGUAGE Gedragswijziging
Runtime-specifieke apps die niet zelfstandig zijn Bron/binair niet compatibel
--arch optie impliceert geen zelfstandige Gedragswijziging
'dotnet restore' produceert waarschuwingen voor beveiligingsproblemen Gedragswijziging
SDK maakt gebruik van een kleinere RID-grafiek Gedragswijziging/bron is niet compatibel
Bronkoppeling opgenomen in de .NET SDK Bron is niet compatibel
Bijsnijden kan niet worden gebruikt met .NET Standard of .NET Framework Gedragswijziging
Niet-vermelde pakketten die niet standaard zijn geïnstalleerd voor .NET-hulpprogramma's Gedragswijziging
.user-bestand geïmporteerd in outer builds Gedragswijziging
Versievereisten voor .NET 8 SDK Bron is niet compatibel

Serialization

Titel Type wijziging
BinaryFormatter uitgeschakeld voor de meeste projecten Gedragswijziging
PublishedTrimmed-projecten mislukken serialisatie op basis van reflectie Gedragswijziging
Deserializer op basis van weerspiegeling lost metagegevens gretig op Gedragswijziging

Windows Forms

Titel Type wijziging
Wijzigingen in ankerindeling Gedragswijziging
Certificaten gecontroleerd voordat externe afbeeldingen in PictureBox worden geladen Gedragswijziging
DefaultValueAttribute verwijderd uit sommige eigenschappen Gedragswijziging
ExceptionCollection-ctor genereert ArgumentException Gedragswijziging
Formulieren schalen volgens AutoScaleMode Gedragswijziging
Standaard imageList.ColorDepth is Depth32Bit Gedragswijziging
System.Windows.Extensions verwijst niet naar System.Drawing.Common Bron is niet compatibel
TableLayoutStyleCollection genereert ArgumentException Gedragswijziging
Formulieren op het hoogste niveau schalen minimale en maximale grootte naar DPI Gedragswijziging
WFDEV002 verdoezeling is nu een fout Bron is niet compatibel

Zie ook