Belangrijke wijzigingen in .NET 6

Als u een app migreert naar .NET 6, 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.

In dit artikel wordt aangegeven of elke belangrijke wijziging binair compatibel of bron compatibel is:

  • Binair compatibel : bestaande binaire bestanden worden geladen en uitgevoerd zonder hercompilatie, en het runtimegedrag wordt niet gewijzigd.
  • Broncompatibel : broncode wordt zonder wijzigingen gecompileerd wanneer deze gericht is op de nieuwe runtime of het gebruik van de nieuwe SDK of het nieuwe onderdeel.

ASP.NET Core

Zie Belangrijke wijzigingen in ASP.NET Core 6.

Verpakkingen

Titel Binair compatibel Bron compatibel
Standaardopmaak van consolelogger in containerinstallatiekopieën ✔️

Zie releaseopmerkingen voor .NET 6 voor meer informatie over andere belangrijke wijzigingen voor containers in .NET 6.

Core .NET-bibliotheken

Titel Binair compatibel Bron compatibel
API-niet-standaarddiagnose-id's ✔️
Wijzigingen in aantekeningen van null-verwijzingstypen ✔️
Evaluatie van voorwaardelijke tekenreeksen in foutopsporingsmethoden ✔️
Environment.ProcessorCount-gedrag in Windows ✔️
EventSource-callbackgedrag ✔️ ✔️
File.Replace op Unix genereert uitzonderingen om overeen te komen met Windows ✔️
FileStream vergrendelt bestanden met gedeelde vergrendeling op Unix ✔️
FileStream synchroniseert bestandsverschil niet meer met het besturingssysteem
FileStream.Position-updates nadat ReadAsync of WriteAsync is voltooid
Nieuwe diagnostische id's voor verouderde API's ✔️
Nieuwe System.Linq.Queryable-methode overbelast ✔️
Oudere frameworkversies die uit het pakket zijn verwijderd ✔️
Parameternamen gewijzigd ✔️
Parameternamen in stream-afgeleide typen ✔️
Gedeeltelijke en nul-byte-leesbewerkingen in DeflateStream, GZipStream en CryptoStream ✔️
Tijdstempel instellen voor bestand met het kenmerk Alleen-lezen in Windows ✔️
Standaard precisie voor parseren van numerieke notatie ✔️
Statische abstracte leden in interfaces ✔️
StringBuilder.Append overloads en evaluatievolgorde ✔️
Api's met sterke naam gooien PlatformNotSupportedException ✔️
System.Drawing.Common wordt alleen ondersteund in Windows
System.Security.SecurityContext is gemarkeerd als verouderd ✔️
Task.FromResult kan singleton retourneren ✔️
Niet-verwerkte uitzonderingen van een BackgroundService ✔️

Cryptografie

Titel Binair compatibel Bron compatibel
CreateEncryptor-methoden genereren uitzondering voor onjuiste feedbackgrootte ✔️

Implementatie

Titel Binair compatibel Bron compatibel
x86-hostpad in 64-bits Windows ✔️ ✔️

Entity Framework Core

Zie Belangrijke wijzigingen in EF Core 6.

Uitbreidingen

Titel Binair compatibel Bron compatibel
AddProvider controleert op niet-null-provider ✔️
FileConfigurationProvider.Load genereert InvalidDataException ✔️
Herhaalde XML-elementen bevatten index ✔️
Het oplossen van verwijderd ServiceProvider genereert uitzondering ✔️

Globalisatie

Titel Binair compatibel Bron compatibel
Cultuur maken en casetoewijzing in de globalization-invariant-modus

Interop

Titel Binair compatibel Bron compatibel
Statische abstracte leden in interfaces ✔️

JIT-compiler

Titel Binair compatibel Bron compatibel
Aanroepargumenten op basis van ECMA-335 ✔️ ✔️

Netwerken

Titel Binair compatibel Bron compatibel
Poort verwijderd uit SPN voor Kerberos en Onderhandelen ✔️
WebRequest, WebClient en ServicePoint zijn verouderd ✔️

SDK

Titel Binair compatibel Bron compatibel
-p optie voor dotnet run is afgeschaft ✔️
C#-code in sjablonen die niet worden ondersteund door eerdere versies ✔️ ✔️
EditorConfig-bestanden impliciet opgenomen ✔️
Apphost genereren voor macOS ✔️
Fout genereren voor dubbele bestanden in publicatie-uitvoer ✔️
GetTargetFrameworkProperties en GetNearestTargetFramework verwijderd uit het ProjectReference-protocol ✔️
Installatielocatie voor x64 geëmuleerd op Arm64 ✔️
MSBuild biedt geen ondersteuning meer voor het aanroepen van GetType()
.NET kan niet worden geïnstalleerd op een aangepaste locatie ✔️ ✔️
OutputType is niet automatisch ingesteld op WinExe ✔️
ReadyToRun publiceren met --no-restore vereist wijzigingen ✔️
runtimeconfig.dev.json bestand niet gegenereerd ✔️
RuntimeIdentifier-waarschuwing als zelfstandige niet is opgegeven ✔️
Hulpprogrammamanifesten in hoofdmap ✔️ ✔️
Versievereisten voor .NET 6 SDK ✔️ ✔️
.version-bestand bevat buildversie ✔️ ✔️
Referentieassembly's schrijven naar IntermediateOutputPath ✔️

Serialisatie

Titel Binair compatibel Bron compatibel
DataContractSerializer behoudt teken bij het deserialiseren van -0 ✔️
Standaardserialisatie-indeling voor TimeSpan ✔️
IAsyncEnumerable serialisatie ✔️
Api-herstructurering van JSON-brongeneratie ✔️
JsonNumberHandlingAttribute voor verzamelingseigenschappen ✔️
Overbelasting van nieuwe JsonSerializer-brongenerator ✔️

Windows Forms

Titel Binair compatibel Bron compatibel
C#-sjablonen maken gebruik van toepassingsbootstrap ✔️
Geselecteerde eigenschappen TableLayoutSettings gooien InvalidEnumArgumentException ✔️
DataGridView-gerelateerde API's gooien nu InvalidOperationException ✔️
ListViewGroupCollection-methoden gooien nieuwe InvalidOperationException ✔️
De maximale tekstlengte van NotifyIcon.Text is verhoogd ✔️
ScaleControl wordt alleen aangeroepen wanneer dat nodig is ✔️
Sommige API's gooien ArgumentNullException ✔️
TreeNodeCollection.Item genereert een uitzondering als een knooppunt ergens anders wordt toegewezen ✔️

XML en XSLT

Titel Binair compatibel Bron compatibel
XNodeReader.GetAttribute-gedrag voor ongeldige index ✔️

Zie ook