Brekende 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 incompatibele wijziging als binair niet compatibel, broncode niet compatibel, of als een gedragswijziging:

  • Binair incompatibel - Wanneer deze worden uitgevoerd tegen de nieuwe runtime of het nieuwe onderdeel, kunnen bestaande binaire bestanden een doorbraakverandering in gedrag tegenkomen, zoals het niet laden of uitvoeren, en indien dat het geval is, moet opnieuw worden gecompileerd.

  • Bron niet compatibel - wanneer de bron opnieuw wordt gecompileerd met behulp van de nieuwe SDK of het nieuwe onderdeel of om op de nieuwe runtime te richten, kan het zijn dat voor bestaande broncode aanpassingen nodig zijn om te compileren.

  • 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

Zie Belangrijke wijzigingen in ASP.NET Core 8.

Verpakkingen

Titel Type wijziging
'ca-certificates'-pakket verwijderd uit Alpine-images Binair niet compatibel
Debian-containerinstallatiekopieën bijgewerkt naar Debian 12 Binaire onverenigbaarheids-/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 voor meerdere platforms zijn alleen voor Linux Gedragswijziging
Nieuwe 'app'-gebruiker in Linux-afbeeldingen Gedragswijziging

Core .NET-bibliotheken

Titel Type wijziging
Naam van de activiteitbewerking wanneer deze null is Gedragswijziging
AnonymousPipeServerStream.Dispose-gedrag Gedragswijziging
API-verouderingen met aangepaste diagnostische ID's Bron is niet compatibel
Backslash-toewijzing in Unix-bestandspaden Gedragswijziging
Base64.DecodeFromUtf8-methoden negeren witruimte Gedragswijziging
Ondersteuning voor Boolean-onderbouwd enum type verwijderd Gedragswijziging
Complex.ToString-indeling gewijzigd in <a; b> Gedragswijziging
Opsomming van het huidige pad van de schijfmap 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 annotaties Bron is niet compatibel
LDAP-API's zijn niet beschikbaar op .NET Standard/.NET Framework Binair niet compatibel
Legacy Console.ReadKey verwijderd Gedragswijziging
Methodebouwers genereren parameters met HasDefaultValue ingesteld op false Gedragswijziging
Pakketonderdeel-URI's worden nu hoofdletterongevoelig vergeleken in System.IO.Packaging 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 Incompatibiliteit van binaire codes/gedragsverandering
.NET Monitor bevat alleen distributieloze installatiekopieën Gedragswijziging
.NET-pakketten voor openSUSE en SLES zijn afhankelijk van OpenSSL 3.x Gedragswijziging
StripSymbols is standaard ingesteld op true Gedragswijziging

Entity Framework Core

Zie 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 slaat ongeldige matrixelementen op de achtergrond over 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 door configuratiebinder aan woordenboek toegevoegd Gedragswijziging
FromKeyedServicesAttribute.Key kan null zijn Bron is niet compatibel
HostApplicationBuilderSettings.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.Unwrap verwijdert alleen de verpakking van doelinstanties Gedragswijziging
Bij aangepaste marshallers zijn extra leden vereist Bron is niet compatibel
IDispatchImplAttribute-API is verwijderd Binair niet compatibel
JSFunctionBinding impliciete openbare standaardconstructor verwijderd Binair niet compatibel
SafeHandle-typen moeten openbare constructor hebben Bron is niet compatibel
De systeemeigen Linux-bibliotheekresolutie wordt niet langer gebruikt netcoredeps Gedragswijziging

Netwerken

Titel Type wijziging
SendFile genereert NotSupportedException voor verbindingsloze sockets Gedragswijziging
Gebruikersgegevens in mailto: URI's worden vergeleken 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 wordt niet langer toegevoegd Gedragswijziging/bron is niet compatibel
Aangepaste msBuild-build-gebeurtenissen afgeschaft Gedragswijziging
MSBuild houdt rekening met DOTNET_CLI_UI_LANGUAGE Gedragswijziging
Runtime-specifieke apps die niet zelfvoorzienend zijn Bron/binair niet compatibel
De --arch optie impliceert niet zelfvoorzienend Gedragswijziging
'dotnet restore' produceert waarschuwingen voor beveiligingsproblemen Gedragswijziging
'dotnet list package' waarschuwt als de bron geen gegevens over beveiligingsproblemen levert Gedragswijziging
SDK maakt gebruik van een kleinere RID-grafiek Gedragswijziging/bron is niet compatibel
Als u DebugSymbols instelt op false, wordt het genereren van PDB uitgeschakeld Gedragswijziging
Bronkoppeling opgenomen in de .NET SDK Bron is niet compatibel
Trimming 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

Serialisatie

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
Certificaten gecontroleerd voordat externe afbeeldingen in PictureBox worden geladen Gedragswijziging
DateTimePicker.Text is een lege tekenreeks 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 veroudering is nu een fout Bron is niet compatibel

Zie ook