Changements cassants dans .NET 8
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 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é.
ASP.NET Core
Titre | Type de changement |
---|---|
ConcurrencyLimiterMiddleware est obsolète | Source incompatible |
Suppression des convertisseurs personnalisés pour la sérialisation | Changements de comportement |
ISystemClock est obsolète | Source incompatible |
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 incompatible |
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 incompatible | 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
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 incompatible |
Le package DirectoryServices ne fait plus référence à System.Security.Permissions | Source incompatible |
Clés vides ajoutées au dictionnaire par le classeur de configuration | Changements de comportement |
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
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 incompatible |
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 incompatible |
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 |
---|---|
Modifications de la disposition des ancres | Changements de comportement |
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 incompatible |
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 incompatible |