Kódy chyb ověření balíčku/sestavení
Tento referenční článek obsahuje seznam všech kódů chyb vygenerovaných ověřením balíčku a ověřením sestavení.
Seznam kódů chyb
ID diagnostiky | Popis | Doporučená akce |
---|---|---|
PKV001 | Chybí prostředek doby kompilace pro kompatibilní architekturu. | Přidejte do projektu odpovídající cílovou architekturu. |
PKV002 | Chybí prostředek za běhu pro kompatibilní architekturu a modul runtime. | Přidejte příslušný prostředek pro odpovídající modul runtime do balíčku. |
PKV003 | Chybí nezávislý prostředek za běhu pro kompatibilní architekturu. | Přidejte do projektu příslušnou cílovou architekturu nezávislou na čase za běhu. |
PKV004 | Chybí kompatibilní prostředek za běhu pro prostředek v době kompilace. | Přidejte do balíčku odpovídající prostředek za běhu. |
PKV005 | Chybí kompatibilní prostředek za běhu pro prostředek v době kompilace a chybí podporovaný identifikátor modulu runtime. | Přidejte do balíčku odpovídající prostředek za běhu. |
PKV006 | Cílová architektura se zahodí v nejnovější verzi. | Přidejte do projektu odpovídající cílovou architekturu. |
PKV007 | Dvojice identifikátorů cílové architektury a modulu runtime se zahodí v nejnovější verzi. | Přidejte do projektu příslušnou cílovou architekturu a identifikátor RID. |
CP0001 | V porovnání sestavení chybí typ, výčet, záznam nebo struktura viditelné mimo sestavení, pokud je to nutné. | Přidejte chybějící typ do sestavení, kde chybí. |
CP0002 | Člen, který je viditelný mimo sestavení, chybí ve porovnávané sestavení, pokud je to nutné. | Přidejte chybějící člen do sestavení, kde chybí. |
CP0003 | Některá část identity sestavení (název, token veřejného klíče, jazyková verze, retargetable atribut nebo verze) se neshoduje na obou stranách porovnání. | Aktualizujte identitu sestavení tak, aby se obě strany shodovaly. |
CP0004 | Při vytváření mapování sestavení nebyla na jedné straně porovnání nalezena odpovídající sestavení. | Ujistěte se, že je do balíčku přidáno chybějící sestavení. |
CP0005 | Člen abstract byl přidán na pravou stranu porovnání na nezapečetěný typ. |
Odeberte člena nebo ho neonotujte jako abstract . |
CP0006 | Člen byl přidán do rozhraní bez výchozí implementace. | Pokud cílová architektura a verze jazyka podporují výchozí implementace, přidejte jeden nebo odeberte člena z rozhraní. |
CP0007 | Základní typ v hierarchii tříd byl odebrán z jedné z porovnávaných stran. | Přidejte základní typ zpět. (Nový základní typ lze zavést v hierarchii, pokud je to zamýšleno.) |
CP0008 | Základní rozhraní bylo odebráno z hierarchie rozhraní z jedné z porovnávaných stran. | Přidejte rozhraní zpět do hierarchie. |
CP0009 | Typ, který byl nezapečetěn na jedné straně, byl opatřen poznámkami jako sealed na druhé porovnávané straně. |
Odeberte poznámku sealed z typu. |
CP0010 | Základní typ výčtu se změnil z jedné strany na druhý. | Změňte základní typ zpět na předchozí typ. |
CP0011 | Hodnota člena v výčtu se změnila z jedné strany na druhou. | Změňte hodnotu člena zpět na to, co bylo dříve. |
CP0012 | Klíčové virtual slovo bylo odebráno z člena, který byl dříve virtuální. |
virtual Přidejte klíčové slovo zpět ke členu. |
CP0013 | Klíčové virtual slovo bylo přidáno do člena, který nebyl dříve virtuální. |
virtual Odeberte klíčové slovo od člena. |
CP0014 | Atribut byl odebrán z člena, který ho měl dříve. | Přidejte atribut zpět ke členu. |
CP0015 | Argumenty předané atributu se změnily z jedné strany na druhou. | Změňte argumenty na atribut zpět na to, co byly dříve. |
CP0016 | Atribut byl přidán k členu, který ho předtím neměl. | Odeberte atribut ze člena. |
CP0017 | Název parametru metody se změnil z jedné strany na druhou. | Změňte název parametru zpět na dříve. |
CP0018 | Klíčové sealed slovo bylo přidáno do člena rozhraní, který nebyl dříve zapečetěn. |
sealed Odeberte klíčové slovo ze člena rozhraní. |
CP0019 | Viditelnost člena byla snížena z jedné strany na druhou. | Změňte viditelnost člena zpět na to, co bylo dříve. |
CP0020 | Viditelnost člena byla rozšířena z jedné strany na druhou. | Změňte viditelnost člena zpět na to, co bylo dříve. |
CP1001 | V adresářích vyhledávání nelze najít odpovídající sestavení. (Nejde použít pro ověření balíčku, pouze při použití rozhraní API Compat přímo.) | Zadejte vyhledávací adresář při načítání odpovídajících sestavení pomocí AssemblySymbolLoader . |
CP1002 | Při načítání sestavení nebyla nalezena referenční sestavení pro porovnání v vyřešených adresářích pro aktuální cílovou architekturu. | Zahrňte cestu k adresáři, kde lze nalézt sestavení pomocí následující položky NÁSTROJE MSBuild: <PackageValidationReferencePath Include="<path>" TargetFramework="<tfm>" /> . |
CP1003 | Pro moniker cílové architektury nebyl k dispozici žádný vyhledávací adresář, pro který ověřování balíčku spouští compat rozhraní API. | Zadejte vyhledávací adresář k vyhledání odkazů pro danou cílovou architekturu pomocí následující položky NÁSTROJE MSBuild: <PackageValidationReferencePath Include="<path>" TargetFramework="<tfm>" /> . |
Jak potlačit
Jednotlivá diagnostická ID můžete potlačit některým z následujících způsobů:
- Prostřednictvím souboru potlačení.
- Prostřednictvím příznaku kompilátoru.
NoWarn
Soubor potlačení
Pokud chcete potlačit chyby kompatibility pro záměrné změny, přidejte do projektu soubor CompatibilitySuppressions.xml . Ověření balíčku a ověření sestavení používají stejný formát souboru potlačení.
Tento soubor můžete vygenerovat automaticky jedním ze dvou způsobů:
/p:GenerateCompatibilitySuppressionFile=true
Předáním, pokud projekt zabalíte z příkazového řádku.- Přidáním následující vlastnosti do souboru projektu:
<GenerateCompatibilitySuppressionFile>true</GenerateCompatibilitySuppressionFile>
.
Soubor potlačení vypadá takto.
<?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
určuje ID chyby, která se má potlačit.Target
určuje, kde má kód potlačit ID diagnostiky.Left
určuje levý operand porovnání APICompat.Right
určuje správný operand porovnání APICompat.IsBaselineSuppression
určuje, zda má být potlačení aplikováno na ověřování podle směrného plánu () nebotrue
ne (false
).
Možnost kompilátoru NoWarn
Jednotlivá diagnostická ID můžete také potlačit pomocí příznaku kompilátoru NoWarn
, a to buď pro jednotlivé balíčky, nebo globálně.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
...
<!-- The following NoWarn suppresses PKV001 project-wide -->
<NoWarn>$(NoWarn);PKV001</NoWarn>
</PropertyGroup>
</Project>