Partager via


Changements cassants dans .NET 9

Si vous migrez une application vers .NET 9, les changements cassants répertoriés ici peuvent vous concerner. Les changements sont regroupés par domaine technologique, par exemple ASP.NET Core ou Windows Forms.

Cet article catégorise chaque changement cassant comme binaire incompatible ou source incompatible, ou comme un changement de comportement :

  • Binaire incompatible : lorsqu’ils sont exécutés sur le nouveau runtime ou composant, les fichiers binaires existants peuvent rencontrer un changement de comportement cassant, tel qu’un échec de chargement ou d’exécution, et, si c’est le cas, peuvent nécessiter une recompilation.

  • Source incompatible : lorsqu’il est recompilé à l’aide du nouveau kit de développement logiciel (SDK) ou du nouveau composant ou pour cibler le nouveau runtime, le code source existant peut nécessiter des modifications de source pour réussir la compilation.

  • Changement de comportement : le code et les fichiers binaires existants peuvent se comporter différemment au moment de l’exécution. Si le nouveau comportement n’est pas souhaitable, le code existant doit être mis à jour et recompilé.

Note

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

ASP.NET Core

Titre Type de changement Version introduite
La signification de DefaultKeyResolution.ShouldGenerateNewKey a été modifiée Changements de comportement Préversion 3
L’exportation de certificat de développement ne crée plus de dossier Changements de comportement RC 1
HostBuilder active ValidateOnBuild/ValidateScopes dans un environnement de développement Changements de comportement Préversion 7
API Mono et Emscripten anciennes non exportées vers un namespace global Source incompatible GA
Types d'intergiciels avec plusieurs constructeurs Changements de comportement RC 1

Containers

Titre Type de changement Version introduite
Les images de conteneurs n'installent plus zlib Changements de comportement Préversion 7
Les images du moniteur .NET sont simplifiées et remplacées par des balises de version uniquement Changements de comportement Préversion 5

Bibliothèques .NET Core

Titre Type de changement Version introduite
L’ajout d’un ZipArchiveEntry avec CompressionLevel définit les indicateurs de bits universels d’en-tête de répertoire central ZIP Changements de comportement Préversion 5
Prise en charge de UnsafeAccessor modifiée pour les génériques non ouverts Changements de comportement Préversion 6
Obsolescences de l’API avec des ID de diagnostic personnalisés Source incompatible (Multiple)
résolution de surcharge ambiguë affectant les opérateurs implicites StringValues Source incompatible GA
Longueur maximale de BigInteger Changements de comportement Préversion 6
BinaryReader.GetString() retourne « /uFFFD » sur des séquences mal formées Changements de comportement Préversion 7
La résolution des surcharges en C# préfère les surcharges de type params étendue Source incompatible
Création du type de tableau System.Void non autorisée Changements de comportement Préversion 1
Valeur par défaut Equals() et GetHashCode() levée pour les types marqués avec InlineArrayAttribute Changements de comportement Préversion 6
EnumConverter valide les types enregistrés pour qu’ils soient enum Changements de comportement Préversion 7
FromKeyedServicesAttribute n’injecte plus de paramètre non-clé Changements de comportement RC 1
IncrementingPollingCounter, le premier rappel est asynchrone Changements de comportement RC 1
La limite de taille de struct du tableau inclus est appliquée Changements de comportement Préversion 1
InMemoryDirectoryInfo ajoute rootDir au début des fichiers Changements de comportement Préversion 1
Nouvelles surcharges TimeSpan.From*() qui acceptent des entiers Source incompatible Préversion 3
Nouvelle version de certains packages OOB packages Source incompatible Préversion 5
RuntimeHelpers.GetSubArray retourne un type différent Changements de comportement Préversion 1
Surcharge String.Trim(params ReadOnlySpan<char>) supprimée Source/Incompatibilité binaire GA
Prise en charge de variables d’environnement vides Changements de comportement Préversion 6
Les noms et commentaires de ZipArchiveEntry respectent l’indicateur UTF8 Changements de comportement RC 1

Chiffrement

Titre Type de changement Version introduite
SafeEvpPKeyHandle.DuplicateHandle référence le gestionnaire Changements de comportement Préversion 7
Des constructeurs X509Certificate2 et X509Certificate sont obsolètes Source incompatible Préversion 7
Durée de vie simplifiée de la clé privée Windows Changements de comportement Préversion 7

Déploiement

Titre Type de changement Version introduite
Packages d'exécution MonoVM obsolètes pour Windows/macOS/Linux Source incompatible Préversion 7

Interop

Titre Type de changement Version introduite
Prise en charge CET par défaut Incompatibilité binaire Préversion 6

Compilateur JIT

Titre Type de changement Version introduite
Les conversions de valeurs à virgules flottantes à valeurs en valeurs entières sont saturantes Changements de comportement Préversion 4
Suppression de certaines API de SVE Source incompatible RC 2

Mise en réseau

Titre Type de changement Version introduite
Éléments d’API obsolescents Source incompatible Préversion 6
Rapport de métriques HttpClient server.port inconditionnellement Changements de comportement Préversion 7
La journalisation de HttpClientFactory masque par défaut les valeurs d’en-tête Changements de comportement RC 1
HttpClientFactory utilise SocketsHttpHandler comme gestionnaire principal Changements de comportement Préversion 6
HttpListenerRequest.UserAgent peut accepter la valeur Null Source incompatible Préversion 1
Masquage des requêtes URI dans les événements EventSource de HttpClient Changements de comportement Préversion 7
Masquage des requêtes URI dans les journaux IHttpClientFactory Changements de comportement Préversion 7

Kit SDK et MSBuild

Titre Type de changement Version introduite
dotnet restore audite les packages transitifs Changements de comportement Préversion 6
dotnet sln add n’autorise pas les noms de fichiers non valides Changements de comportement 9.0.2xx
dotnet watch incompatible avec le rechargement à chaud pour les anciens frameworks Changements de comportement RC 1
dotnet workload Changement de la sortie des commandes Changements de comportement Préversion 1
La version dépôt de installer n’est plus documentée Changements de comportement Préversion 5
Nouveau RID par défaut utilisé pour le ciblage de .NET Framework Source incompatible GA
L’enregistreur d’événements terminal est utilisé par défaut Changements de comportement Préversion 1
Configuration requise pour le kit SDK .NET 9 Source incompatible GA
Avertissement émis pour la cible .NET Standard 1.x Source incompatible Préversion 6
Avertissement émis pour la cible .NET 7 Source incompatible GA

Sérialisation

Titre Type de changement Version introduite
BinaryFormatter renvoie toujours Changements de comportement Préversion 6
Les propriétés JsonDocument nullables sont désérialisées en JsonValueKind.Null Changements de comportement Préversion 1
Le lecteur de métadonnées System.Text.Json remplace désormais les noms de propriétés de métadonnées Changements de comportement GA

Windows Forms

Titre Type de changement Version introduite
BindingSource.SortDescriptions ne retourne pas Null Changements de comportement Préversion 1
Modifications apportées aux annotations de nullabilité Source incompatible Préversion 1
ComponentDesigner.Initialize lève ArgumentNullException Changements de comportement Préversion 1
Index de ligne de départ DataGridViewRowAccessibleObject.Name Changements de comportement Préversion 1
Le support IMsoComponent est à activer Changements de comportement Préversion 2
Nouveaux analyseurs de sécurité Source incompatible RC 1
Aucune exception si DataGridView a la valeur Null Changements de comportement Préversion 1
PictureBox déclenche des exceptions HttpClient Changements de comportement Préversion 6
StatusStrip utilise un autre convertisseur par défaut Changements de comportement GA

WPF

Titre Type de changement Version introduite
GetXmlNamespaceMaps Modification de type Changement de comportement/Source incompatible Préversion 3

Voir aussi