Codes d’erreur de validation de package/d’assembly
Cet article de référence répertorie tous les codes d’erreur générés par la validation de package et d’assembly.
Liste des codes d’erreur
ID de diagnostic | Description | Action recommandée |
---|---|---|
PKV001 | Il manque une ressource de compilation pour un framework compatible. | Ajoutez le framework cible approprié au projet. |
PKV002 | Il manque une ressource d’exécution pour un framework et un runtime compatibles. | Ajoutez au package la ressource appropriée pour le runtime correspondant. |
PKV003 | Il manque une ressource indépendante de l’exécution pour un framework compatible. | Ajoutez au projet le framework cible indépendant de l’exécution approprié. |
PKV004 | Il manque une ressource d’exécution compatible pour une ressource de compilation. | Ajoutez la ressource d’exécution appropriée au package. |
PKV005 | Il manque une ressource d’exécution compatible pour une ressource de compilation et un identificateur de runtime pris en charge. | Ajoutez la ressource d’exécution appropriée au package. |
PKV006 | Le framework cible est supprimé dans la dernière version. | Ajoutez le framework cible approprié au projet. |
PKV007 | La paire d’identificateurs de framework cible et d’exécution est supprimée dans la dernière version. | Ajoutez le framework cible et le RID appropriés au projet. |
CP0001 | Un type, une énumération, un enregistrement ou un struct visible en dehors de l’assembly est manquant dans l’assembly comparé alors qu’il doit obligatoirement être présent. | Ajoutez le type manquant à l’assembly où il est manquant. |
CP0002 | Un membre visible en dehors de l’assembly est manquant dans l’assembly comparé alors qu’il doit obligatoirement être présent. | Ajoutez le membre manquant à l’assembly où il est manquant. |
CP0003 | Une partie de l’identité d’assembly (nom, jeton de clé publique, culture, attribut reciblable ou version) ne correspond pas des deux côtés de la comparaison. | Mettez à jour l’identité d’assembly afin que les deux côtés correspondent. |
CP0004 | Aucun assembly correspondant n’a été trouvé sur un côté de la comparaison lors de la création du mappage d’assembly. | Assurez-vous que l’assembly manquant est ajouté au package. |
CP0005 | Un membre abstract a été ajouté à droite de la comparaison à un type unsealed. |
Supprimez le membre ou ne l’annotez pas comme abstract . |
CP0006 | Un membre a été ajouté à une interface sans implémentation par défaut. | Si le framework cible et la version du langage prennent en charge les implémentations par défaut, ajoutez-en une ou supprimez simplement le membre de l’interface. |
CP0007 | Un type de base sur la hiérarchie de classes a été supprimé de l’un des côtés comparés. | Ajoutez à nouveau le type de base. (Un nouveau type de base peut être introduit dans la hiérarchie si c’est prévu.) |
CP0008 | Une interface de base a été supprimée de la hiérarchie d’interfaces de l’un des côtés comparés. | Ajoutez de nouveau l’interface à la hiérarchie. |
CP0009 | Un type qui a été unsealed d’un côté a été annoté comme sealed de l’autre côté comparé. |
Supprimez l’annotation sealed du type. |
CP0010 | Le type sous-jacent d’une énumération a changé d’un côté par rapport à l’autre. | Rétablissez le type sous-jacent tel qu’il était auparavant. |
CP0011 | La valeur d’un membre dans une énumération a changé d’un côté par rapport à l’autre. | Rétablissez la valeur du membre telle qu’elle était auparavant. |
CP0012 | Le mot clé virtual a été supprimé d’un membre qui était auparavant virtuel. |
Ajoutez le mot clé virtual au membre. |
CP0013 | Le mot clé virtual a été ajouté à un membre qui n’était pas virtuel auparavant. |
Supprimez le mot clé virtual du membre. |
CP0014 | Un attribut a été supprimé d’un membre qui l’avait auparavant. | Ajoutez de nouveau l’attribut au membre. |
CP0015 | Les arguments passés à un attribut ont changé d’un côté par rapport à l’autre. | Rétablissez les arguments de l’attribut tels qu’ils étaient auparavant. |
CP0016 | Un attribut a été ajouté à un membre qui ne l’avait pas auparavant. | Supprimez l’attribut du membre. |
CP0017 | Le nom du paramètre d’une méthode a changé d’un côté par rapport à l’autre. | Rétablissez le nom du paramètre tel qu’il était auparavant. |
CP0018 | Le mot clé sealed a été ajouté à un membre d’interface qui n’était pas sealed auparavant. |
Supprimez le mot clé sealed du membre d’interface. |
CP0019 | La visibilité d’un membre a été réduite d’un côté par rapport à l’autre. | Rétablissez la visibilité du membre telle qu’elle était auparavant. |
CP0020 | La visibilité d’un membre a été étendue d’un côté par rapport à l’autre. | Rétablissez la visibilité du membre telle qu’elle était auparavant. |
CP1001 | Impossible de trouver un assembly correspondant dans les répertoires de recherche. (Non applicable à la validation de package ; uniquement lors de l’utilisation directe de la compatibilité des API.) | Fournissez le répertoire de recherche lors du chargement d’assemblys correspondants à l’aide de AssemblySymbolLoader . |
CP1002 | Aucun assembly de référence n’a été trouvé lors du chargement des assemblys à comparer dans les répertoires résolus pour le framework cible actuel. | Incluez le chemin du répertoire où cet assembly se trouve à l’aide de l’élément MSBuild suivant : <PackageValidationReferencePath Include="<path>" TargetFramework="<tfm>" /> . |
CP1003 | Aucun répertoire de recherche n’a été fourni pour le moniker de framework cible pour lequel la validation de package exécute la compatibilité des API. | Fournissez le répertoire de recherche pour trouver des références pour ce framework cible à l’aide de l’élément MSBuild suivant : <PackageValidationReferencePath Include="<path>" TargetFramework="<tfm>" /> . |
Procédure de suppression
Vous pouvez supprimer des ID de diagnostic individuels de l’une des manières suivantes :
- Via un fichier de suppression.
- Via l’
NoWarn
indicateur de compilateur.
Fichier de suppression
Pour supprimer les erreurs de compatibilité pour les modifications intentionnelles, ajoutez un fichier CompatibilitySuppressions.xml à votre projet. La validation de package et d’assembly utilisent le même format de fichier de suppression.
Vous pouvez générer ce fichier automatiquement de l’une des deux façons :
- En passant
/p:GenerateCompatibilitySuppressionFile=true
si vous créez un package du projet à partir de la ligne de commande. - En ajoutant la propriété suivante à votre Fichier projet :
<GenerateCompatibilitySuppressionFile>true</GenerateCompatibilitySuppressionFile>
.
Le fichier de suppression ressemble à ceci.
<?xml version="1.0" encoding="utf-8"?>
<Suppressions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Suppression>
<DiagnosticId>CP0002</DiagnosticId>
<Target>M:A.B.DoStringManipulation(System.String)</Target>
<Left>lib/netstandard2.0/A.dll</Left>
<Right>lib/net6.0/A.dll</Right>
<IsBaselineSuppression>false</IsBaselineSuppression>
</Suppression>
</Suppressions>
DiagnosticId
spécifie l’ID de l’erreur à supprimer.Target
spécifie où supprimer les ID de diagnostic dans le code.Left
spécifie l’opérande gauche d’une comparaison APICompat.Right
spécifie l’opérande droite d’une comparaison APICompat.IsBaselineSuppression
spécifie s’il faut appliquer la suppression à une validation de référence (true
) ou non (false
).
Option du compilateur NoWarn
Vous pouvez également supprimer des ID de diagnostic individuels via l’indicateur du compilateur NoWarn
, par package ou globalement.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
...
<!-- The following NoWarn suppresses PKV001 project-wide -->
<NoWarn>$(NoWarn);PKV001</NoWarn>
</PropertyGroup>
</Project>
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour