Obsolescence d’API avec ID de diagnostics autres que ceux par défaut

Certaines API ont été marquées comme obsolètes, à partir de .NET 5. Ce changement cassant est spécifique aux API qui ont été marquées comme obsolètes avec un ID de diagnostic personnalisé. La suppression de l’ID de diagnostic d’obsolescence par défaut, qui est CS0618 pour le compilateur C#, ne supprime pas les avertissements générés par le compilateur lorsque ces API sont utilisées.

Description de la modification

Dans les versions précédentes de .NET, ces API peuvent être utilisées sans avertissement de build. Dans .NET 5 et versions ultérieures, l’utilisation de ces API génère un avertissement ou une erreur au moment de la compilation avec un ID de diagnostic personnalisé. L’utilisation des ID de diagnostic personnalisés vous permet de supprimer individuellement des avertissements d’obsolescence au lieu de tous les supprimer.

Le tableau suivant répertorie les ID de diagnostic personnalisés et leurs messages d’avertissement correspondants pour les API obsolètes.

ID de diagnostic Description Gravité
SYSLIB0001 L’encodage UTF-7 n’est pas sécurisé et ne doit pas être utilisé. Envisagez d’utiliser UTF-8 à la place. Avertissement
SYSLIB0002 PrincipalPermissionAttribute n’est pas respecté par le runtime et ne doit pas être utilisé. Erreur
SYSLIB0003 La sécurité d’accès du code (CAS) n’est pas prise en charge ni respectée par le runtime. Avertissement
SYSLIB0004 La fonctionnalité de région d’exécution contrainte (CER) n’est pas prise en charge. Avertissement
SYSLIB0005 Le Global Assembly Cache (GAC) n’est pas pris en charge. Avertissement
SYSLIB0006 Thread.Abort() n’est pas pris en charge et lève PlatformNotSupportedException. Avertissement
SYSLIB0007 L’implémentation par défaut de cet algorithme de chiffrement n’est pas prise en charge. Avertissement
SYSLIB0008 L’API CreatePdbGenerator() n’est pas prise en charge et lève PlatformNotSupportedException. Avertissement
SYSLIB0009 Les méthodes AuthenticationManager.Authenticate et AuthenticationManager.PreAuthenticate ne sont pas prises en charge et lèvent PlatformNotSupportedException. Avertissement
SYSLIB0010 Certaines API de communication à distance ne sont pas prises en charge et lèvent PlatformNotSupportedException. Avertissement
SYSLIB0011 La sérialisation BinaryFormatter est obsolète et ne doit pas être utilisée. Avertissement
SYSLIB0012 Assembly.CodeBase et Assembly.EscapedCodeBase sont uniquement inclus pour la compatibilité .NET Framework. Utilisez Assembly.Location à la place. Avertissement

Version introduite

.NET 5.0

  • Suivez les instructions spécifiques fournies pour chaque ID de diagnostic à l’aide du lien URL fourni sur l’avertissement.

  • Les avertissements ou les erreurs liés à ces obsolescences ne peuvent pas être supprimés à l’aide de l’ID de diagnostic standard pour les types ou membres obsolètes ; utilisez plutôt la valeur d’ID de diagnostic SYSLIBxxxx personnalisé.

API affectées

SYSLIB0001

SYSLIB0002

SYSLIB0003

Classes dans l’espace de noms System.Security.Permissions :

Classes qui dérivent de CodeAccessSecurityAttribute :

Interfaces :

Classes qui implémentent IStackWalk :

Classes qui implémentent IPermission :

Classes qui dérivent de CodeAccessPermission :

Classes qui dérivent de ResourcePermissionBase :

Énumérations dans l’espace de noms System.Security.Permissions :

Classes et membres qui dépendent des types de sécurité d’accès du code :

SYSLIB0004

SYSLIB0005

SYSLIB0006

SYSLIB0007

SYSLIB0008

SYSLIB0009

SYSLIB0010

SYSLIB0011

SYSLIB0012

Voir aussi