Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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 radical comme incompatible binaire ou incompatible source, 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 comportemental : le code et les fichiers binaires existants peuvent se comporter différemment lors de l’exécution. Si le nouveau comportement n’est pas souhaitable, le code existant doit être mis à jour et recompilé.
ASP.NET Noyau
| Titre | Type de changement |
|---|---|
| DefaultKeyResolution.ShouldGenerateNewKey a modifié la signification | Changements de comportement |
| L’exportation de certificat de développement ne crée plus de dossier | Changements de comportement |
| L’intergiciel Des en-têtes transférés ignore les en-têtes X-Forwarded-* provenant de proxys inconnus | Changements de comportement |
| HostBuilder active ValidateOnBuild/ValidateScopes dans un environnement de développement | Changements de comportement |
| API Mono et Emscripten anciennes non exportées vers un namespace global | Source non compatible |
| Types d'intergiciels avec plusieurs constructeurs | Changements de comportement |
Conteneurs
| 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
Chiffrement
| Titre | Type de changement | Version introduite |
|---|---|---|
| API supprimées de System.Security.Cryptography.Pkcs netstandard2.0 | Source non compatible | Assemblée générale |
| SafeEvpPKeyHandle.DuplicateHandle référence le gestionnaire | Changements de comportement | Préversion 7 |
| Certains constructeurs X509Certificate2 et X509Certificate sont obsolètes | Source non compatible | 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 non compatible | Préversion 7 |
Entity Framework Core
Modifications importantes dans EF Core 9
Interopérabilité
| 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 non compatible | RC 2 |
Mise en réseau
| Titre | Type de changement | Version introduite |
|---|---|---|
| Éléments d’API obsolescents | Source non compatible | 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 non compatible | 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 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 |
| Gestion des ressources culturelles personnalisées avec MSBuild | Changements de comportement | 9.0.200/9.0.300 |
| Nouveau RID par défaut utilisé pour le ciblage de .NET Framework | Source non compatible | Assemblée générale |
| Terminal Logger est par défaut | Changements de comportement | Préversion 1 |
| Configuration requise pour le kit SDK .NET 9 | Source non compatible | Assemblée générale |
| Avertissement émis pour la cible .NET Standard 1.x | Source non compatible | Préversion 6 |
| Avertissement émis pour la cible .NET 7 | Source non compatible | Assemblée générale |
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 | Assemblée générale |
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 non compatible | Préversion 1 |
| ComponentDesigner.Initialize génère 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 non compatible | 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 | Assemblée générale |
WPF (Windows Presentation Foundation)
| Titre | Type de changement | Version introduite |
|---|---|---|
GetXmlNamespaceMaps Modification de type |
Changement de comportement/Source incompatible | Préversion 3 |