Changements cassants dans .NET 7

Si vous migrez une application vers .NET 7, les modifications cassants répertoriées ici peuvent vous affecter. Les modifications sont regroupées par domaine technologique, par exemple ASP.NET Core ou Windows Forms.

Cet article indique si chaque modification cassant est compatible binaire ou compatible avec la source :

  • Compatible binaire : les fichiers binaires existants se chargent et s’exécutent correctement sans recompilation, et le comportement d’exécution ne change pas.
  • Compatible avec la source : le code source se compile correctement sans modification lors du ciblage du nouveau runtime ou de l’utilisation du nouveau sdk ou du nouveau composant.

Remarque

Cet article est un travail en cours. Il ne s’agit pas d’une liste complète des changements cassants dans .NET 7. Pour interroger les modifications cassants qui sont toujours en attente de publication, consultez Problèmes de .NET.

ASP.NET Core

Titre Compatible binaire Compatible avec la source Introduit
Les actions du contrôleur d’API tentent de déduire des paramètres à partir de l’API ✔️ Préversion 2
Priorité des variables d’environnement avec préfixe ASPNET ✔️ ✔️ Preview 3
AuthenticateAsync pour les fournisseurs d’authentification à distance ✔️ RC 1
Authentification dans les applications WebAssembly ✔️ RC 1
Schéma d’authentification par défaut ✔️ Préversion 7
Id d’événement pour certains messages de journal Microsoft.AspNetCore.Mvc.Core modifiés ✔️ Preview 3
Points de terminaison de fichier de secours ✔️ RC 2
IHubClients et IHubCallerClients masquent les membres ✔️
Kestrel: liaison HTTPS par défaut supprimée ✔️ Préversion 6
Microsoft.AspNetCore.Server.Kestrel. Transport.Libuv et libuv.dll supprimés Preview 1
Microsoft.Data.SqlClient mis à jour vers la version 4.0.1 ✔️ Préversion 2
L’intergiciel ne se reporte plus au point de terminaison avec un délégué de demande Null ✔️ Préversion 7
La détection par MVC d’un corps vide dans la liaison de modèle a changé ✔️ Preview 3
Modifications de l’API de mise en cache de sortie RC 2
Les méthodes SignalR Hub tentent de résoudre les paramètres de l’ID ✔️ Préversion 2

Bibliothèques .NET Core

Titre Compatible binaire Compatible avec la source Introduit
Obsoletions d’API avec l’ID de diagnostic par défaut ✔️ Preview 3
Obsolescence d’API avec ID de diagnostics autres que ceux par défaut ✔️ Preview 1
Les API de sérialisation de BinaryFormatter produisent des erreurs du compilateur ✔️ RC 1
BrotliStream n’autorise plus les valeurs CompressionLevel non définies ✔️
Projets C++/CLI dans Visual Studio ✔️ Preview 3
Modifications apportées aux exceptions d’API d’appel de réflexion ✔️ Preview 4
Assembly collectible dans AssemblyLoadContext non collectible ✔️ Préversion 5
Changement de comportement de méthode égal pour NaN ✔️ Préversion 5
Contrainte de type générique sur PatternContext<T> Preview 3
Stratégie FileStream héritée supprimée ✔️ Preview 1
Prise en charge des bibliothèques pour les frameworks plus anciens Preview 1
Précision maximale pour les chaînes de format numérique ✔️ RC 1
SerializationFormat.Binary est obsolète Préversion 2
Package NuGet System.Runtime.CompilerServices.Unsafe ✔️ ✔️ Preview 3
Champs temporels sur les liens symboliques ✔️ Preview 1
Suivi des entrées de cache liées ✔️ Preview 1
Valider CompressionLevel pour BrotliStream ✔️ Preview 1

Configuration

Titre Compatible binaire Compatible avec la source Introduit
Entrée System.diagnostics dans app.config ✔️ RC 1

Chiffrement

Titre Compatible binaire Compatible avec la source Introduit
Le déchiffrement d’EnvelopedCms ne double pas unwrap ✔️ Préversion 5
Heure de vérification dynamique X509ChainPolicy ✔️ Préversion 7
Analyse X500DistinguishedName des noms conviviaux ✔️ Préversion 5

Déploiement

Titre Compatible binaire Compatible avec la source Introduit
Tous les assemblys découpés par défaut ✔️ Préversion 7
La recherche à plusieurs niveaux est désactivée ✔️ Preview 4
Chemin d’accès de l’hôte x86 sur Windows 64 bits ✔️ ✔️ Préversion 6
TrimmerDefaultAction est déconseillé ✔️ Préversion 7

Extensions

Titre Compatible binaire Compatible avec la source Introduit
ContentRootPath pour les applications lancées par Windows Shell ✔️ Préversion 6
Préfixes des variables d’environnement ✔️ Preview 4

Globalisation

Titre Compatible binaire Compatible avec la source Introduit
Les API de globalisation utilisent des bibliothèques ICU sur Windows Server ✔️ RC 1

Interop

Titre Compatible binaire Compatible avec la source Introduit
RuntimeInformation.OSArchitecture sous émulation ✔️ RC 1

.NET MAUI

Titre Compatible binaire Compatible avec la source
Les constructeurs acceptent l’interface de base au lieu du type concret ✔️
Méthodes d’assistance de direction de flux supprimées
Nouveau paramètre UpdateBackground ✔️
Propriété ScrollToRequest renommée
Certaines API Windows sont supprimées

Mise en réseau

Titre Compatible binaire Compatible avec la source Introduit
La valeur par défaut d’AllowRenegotiation est false Preview 3
Charges utiles ping personnalisées sur Linux ✔️ Préversion 2
Les méthodes Socket.End ne lèvent pas d’exception ObjectDisposedException ✔️ Préversion 7

SDK et MSBuild

Titre Compatible binaire Compatible avec la source Introduit
RuntimeIdentifier automatique pour certains projets ✔️ 7.0.100
RuntimeIdentifier automatique pour la publication uniquement 7.0.200
Sérialisation MSBuild de types personnalisés dans .NET 7 7.0.100
Installations côte à côte du KIT DE développement logiciel (SDK) 7.0.100
Configuration requise pour la version du Kit de développement logiciel (SDK) .NET 7 ✔️ ✔️ 7.0.100
dotnet test : basculer vers -a alias --arch au lieu de --test-adapter-path Preview 1
dotnet test : basculer vers -r alias --runtime au lieu de --results-dir Preview 1

Sérialisation

Titre Compatible binaire Compatible avec la source Introduit
DataContractSerializer conserve le signe lors de la désérialisation de -0 ✔️ RC 1
Désérialiser le type version avec un espace blanc de début ou de fin ✔️ Preview 1
Le constructeur de copie JsonSerializerOptions inclut JsonSerializerContext ✔️ Préversion 7
Sérialisation polymorphe pour les types d’objets ✔️ RC 1
Solution de repli du générateur de source System.Text.Json ✔️ Préversion 7

Windows Forms

Titre Compatible binaire Compatible avec la source Introduit
Obsoletions et avertissements ✔️ Préversion 1 et RC 1
Certaines API lèvent ArgumentNullException ✔️ Preview 1

XML et XSLT

Titre Compatible binaire Compatible avec la source Introduit
XmlSecureResolver est obsolète RC 1