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 8, les changements cassants répertoriés ici peuvent vous affecter. 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 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 |
|---|---|
| ConcurrencyLimiterMiddleware est obsolète | Source non compatible |
| Suppression des convertisseurs personnalisés pour la sérialisation | 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 |
| L’intergiciel de journalisation HTTP nécessite AddHttpLogging() | Changements de comportement |
| ISystemClock est obsolète | Source non compatible |
| API minimales : Les paramètres IFormFile nécessitent des vérifications anti-falsification | Changements de comportement |
| L’intergiciel de limitation de débit nécessite AddRateLimiter | Changements de comportement |
| Les événements relatifs aux jetons de sécurité renvoient un JsonWebToken | Changements de comportement |
| La valeur par défaut de TrimMode est full pour les projets Web SDK | Source non compatible |
Conteneurs
| Titre | Type de changement |
|---|---|
| Le package « ca-certificates » est supprimé des images Alpine | Incompatibilité binaire |
| Images conteneur Debian mises à niveau vers Debian 12 | Incompatibilité binaire/Changement de comportement |
| Port par défaut ASP.NET Core remplacé par 8080 | Changements de comportement |
| Le package Kerberos est supprimé des images Alpine et Debian | Incompatibilité binaire |
| Package 'libintl' supprimé des images Alpine | Changements de comportement |
| Les balises conteneurs multi-plateformes sont Linux uniquement | Changements de comportement |
| Nouvel utilisateur « application » dans les images Linux | Changements de comportement |
Bibliothèques .NET Core
Chiffrement
| Titre | Type de changement | Introduit |
|---|---|---|
| Taille de la balise d’authentification AesGcm sur macOS | Changements de comportement | Preview 1 |
| RSA.EncryptValue et RSA.DecryptValue obsolète | Source non compatible | Preview 1 |
Déploiement
| Titre | Type de changement |
|---|---|
| L’hôte détermine les ressources propres au RID | Incompatibilité binaire/Changement de comportement |
| .NET Monitor inclut uniquement des images sans distortion | Changements de comportement |
| StripSymbols a la valeur true par défaut | Changements de comportement |
Entity Framework Core (infrastructure d'entité de base)
Changements cassants dans EF Core 8
Extensions
| Titre | Type de changement |
|---|---|
| ActivatorUtilities.CreateInstance se comporte de manière cohérente | Changements de comportement |
| ActivatorUtilities.CreateInstance nécessite un fournisseur non null | Changements de comportement |
| ConfigurationBinder lève une exception en cas de valeur incompatible | Changements de comportement |
| Le package ConfigurationManager ne fait plus référence à System.Security.Permissions | Source non compatible |
| Le package DirectoryServices ne fait plus référence à System.Security.Permissions | Source non compatible |
| Clés vides ajoutées au dictionnaire par le classeur de configuration | Changements de comportement |
| FromKeyedServicesAttribute.Key peut être null | Source non compatible |
| HostApplicationBuilderSettings.Args respecté par le constructeur HostApplicationBuilder | Changements de comportement |
| ManagementDateTimeConverter.ToDateTime retourne une heure locale | Changements de comportement |
| Modification de la mise en forme de System.Formats.Cbor DateTimeOffset | Changements de comportement |
Globalisation
| Titre | Type de changement |
|---|---|
| Les convertisseurs de date et d’heure respectent l’argument de culture | Changements de comportement |
| La valeur par défaut de TwoDigitYearMax est 2049 | Changements de comportement |
Interopérabilité
| Titre | Type de changement |
|---|---|
| CreateObjectFlags.Unwrap désenveloppe uniquement sur l’instance cible | Changements de comportement |
| Les marshallers personnalisés nécessitent des membres supplémentaires | Source non compatible |
| API IDispatchImplAttribute est supprimée | Incompatibilité binaire |
| Constructeur par défaut public implicite JSFunctionBinding supprimé | Incompatibilité binaire |
| Les types SafeHandle doivent avoir un constructeur public | Source non compatible |
La résolution de bibliothèque native Linux n’utilise plus netcoredeps |
Changements de comportement |
Mise en réseau
| Titre | Type de changement |
|---|---|
| SendFile lève NotSupportedException pour les sockets sans connexion | Changements de comportement |
Les informations utilisateur dans les URI mailto: sont comparées |
Changements de comportement |
Réflexion
| Titre | Type de changement |
|---|---|
| IntPtr n’est plus utilisé pour les types de pointeur de fonction | Changements de comportement |
Kit SDK
Sérialisation
| Titre | Type de changement |
|---|---|
| BinaryFormatter désactivé pour la plupart des projets | Changements de comportement |
| Les projets PublishedTrimmed ne peuvent pas avoir de sérialisation basée sur la réflexion | Changements de comportement |
| Le désérialiseur basé sur la réflexion résout les métadonnées avec empressement | Changements de comportement |
Windows Forms
| Titre | Type de changement |
|---|---|
| Certificats vérifiés avant de charger des images distantes dans PictureBox | Changements de comportement |
| DateTimePicker.Text est une chaîne vide | Changements de comportement |
| DefaultValueAttribute supprimé dans certaines propriétés | Changements de comportement |
| Le constructeur ExceptionCollection lève ArgumentException | Changements de comportement |
| Mise à l’échelle des formulaires selon AutoScaleMode | Changements de comportement |
| ImageList.ColorDepth par défaut est Depth32Bit | Changements de comportement |
| System.Windows.Extensions ne référence pas System.Drawing.Common | Source non compatible |
| TableLayoutStyleCollection lève ArgumentException | Changements de comportement |
| Mettre à l’échelle la taille minimale et maximale des formulaires de niveau supérieur en PPP | Changements de comportement |
| L’obsolescence WFDEV002 est maintenant une erreur | Source non compatible |