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.
Les attributs suivants introduits dans .NET 5 Preview 8 ont été supprimés ou renommés : MinimumOSPlatformAttribute, RemovedInOSPlatformAttributeet ObsoletedInOSPlatformAttribute.
Description de la modification
.NET 5 Preview 8 a introduit les attributs suivants dans l'espace de noms System.Runtime.Versioning :
MinimumOSPlatformAttributeRemovedInOSPlatformAttributeObsoletedInOSPlatformAttribute
Dans .NET 5 Preview 8, lorsqu’un projet cible une version spécifique au système d’exploitation de .NET 5 à l’aide d’un moniker de framework cible tel que net5.0-windows, la build ajoute un attribut au niveau System.Runtime.Versioning.MinimumOSPlatformAttribute de l’assembly.
Dans .NET 5 RC1, le ObsoletedInOSPlatformAttribute a été supprimé, et MinimumOSPlatformAttribute et RemovedInOSPlatformAttribute ont été renommés comme suit :
| Nom dans Preview 8 | Nom dans RC1 et versions ultérieures |
|---|---|
MinimumOSPlatformAttribute |
SupportedOSPlatformAttribute |
RemovedInOSPlatformAttribute |
UnsupportedOSPlatformAttribute |
Dans .NET 5 RC1 et versions ultérieures, lorsqu’un projet cible une version spécifique au système d’exploitation de .NET 5 à l’aide d’un moniker de framework cible tel que net5.0-windows, la build ajoute un attribut au niveau SupportedOSPlatformAttribute de l’assembly.
Raison de la modification
.NET 5 Preview 8 a introduit dans System.Runtime.Versioning des attributs pour spécifier les plateformes prises en charge par les API. Les attributs sont consommés par l’analyseur de compatibilité de la plateforme pour produire des avertissements de build lorsque des API spécifiques à la plateforme sont consommées sur les plateformes qui ne prennent pas en charge ces API.
Pour .NET 5 RC1, une fonctionnalité supplémentaire a été ajoutée à l’analyseur de compatibilité de plateforme pour l’exclusion de plateforme. La fonctionnalité permet aux API d’être marquées comme entièrement non prises en charge sur les plateformes du système d’exploitation. Cette fonctionnalité a engendré des modifications des attributs, notamment en utilisant des noms plus appropriés. Le ObsoletedInOSPlatformAttribute a été supprimé, car il n’était plus nécessaire.
Version introduite
5.0 RC1
Action recommandée
Lorsque vous reciblez votre projet de .NET 5 Preview 8 vers .NET 5 RC1, vous pouvez rencontrer des erreurs de génération ou d’exécution en raison de ces modifications. Par exemple, le changement de nom de MinimumOSPlatformAttribute est susceptible de produire des erreurs, car l’attribut est appliqué aux assemblages spécifiques à la plateforme au moment de la génération, et les artefacts de génération anciens feront toujours référence à l’ancien nom de l’API.
Exemples d’erreurs au moment de la compilation :
- erreur CS0246 : le nom du type ou de l’espace de noms ’MinimumOSPlatformAttribute’ est introuvable (une directive using ou une référence d’assembly est-elle manquante ?)
- erreur CS0246 : Le nom de type ou d’espace de noms « RemovedInOSPlatformAttribute » est introuvable (est-ce que vous avez oublié une directive d'utilisation ou une référence d'assemblage ?)
- erreur CS0246 : Le nom de type ou d’espace de noms « ObsoletedInOSPlatformAttribute » est introuvable (vous manquez une directive d'utilisation ou une référence d'assembly ?)
Exemple d’erreur d’exécution :
Exception non gérée. System.TypeLoadException : Impossible de charger le type 'System.Runtime.Versioning.MinimumOSPlatformAttribute' de l’assembly 'System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.
Pour résoudre ces erreurs :
- Mettez à jour toutes les références de
MinimumOSPlatformAttributeà SupportedOSPlatformAttribute. - Mettez à jour toutes les références de
RemovedInOSPlatformAttributeà UnsupportedOSPlatformAttribute. - Supprimez les références à
ObsoletedInOSPlatformAttribute. - Régénérez votre projet (ou effectuez un nettoyage + build) pour supprimer les anciens artefacts de build.
API affectées
System.Runtime.Versioning.MinimumOSPlatformAttributeSystem.Runtime.Versioning.ObsoletedInOSPlatformAttributeSystem.Runtime.Versioning.RemovedInOSPlatformAttribute