Megosztás a következőn keresztül:


Csomag/szerelvény érvényesítési hibakódjai

Ez a referenciacikk felsorolja a csomagellenőrzés és a szerelvény ellenőrzése által létrehozott összes hibakódot.

Hibakódok listája

Diagnosztikai azonosító Leírás Javasolt művelet
PKV001 Hiányzik egy kompatibilis keretrendszer fordítási időegysége. Adja hozzá a megfelelő célkeretet a projekthez.
PKV002 Hiányzik egy kompatibilis keretrendszer és futtatókörnyezet futásidejű objektuma. Adja hozzá a megfelelő objektumot a megfelelő futtatókörnyezethez a csomaghoz.
PKV003 Hiányzik egy futásidejű független eszköz egy kompatibilis keretrendszerhez. Adja hozzá a megfelelő futásidejű független cél keretrendszert a projekthez.
PKV004 Hiányzik egy kompatibilis futásidejű objektum egy fordítási idejű objektumhoz. Adja hozzá a megfelelő futásidejű objektumot a csomaghoz.
PKV005 Hiányzik egy kompatibilis futásidejű objektum egy fordítási idejű objektumhoz és egy támogatott futtatókörnyezet-azonosítóhoz. Adja hozzá a megfelelő futásidejű objektumot a csomaghoz.
PKV006 A cél keretrendszer a legújabb verzióban lesz elvetve. Adja hozzá a megfelelő célkeretet a projekthez.
PKV007 A cél-keretrendszer és a futtatókörnyezet azonosítópárja a legújabb verzióban lesz elvetve. Adja hozzá a megfelelő cél keretrendszert és a RID-t a projekthez.
CP0001 A szerelvényen kívül látható típus, enumerálás, rekord vagy szerkezet hiányzik az összehasonlított szerelvényből, ha szükség van rá. Adja hozzá a hiányzó típust a hiányzó szerelvényhez.
CP0002 A szerelvényen kívül látható tag hiányzik az összehasonlított szerelvényből, ha jelen kell lennie. Adja hozzá a hiányzó tagot ahhoz a szerelvényhez, ahol hiányzik.
CP0003 A szerelvényidentitás egy része (név, nyilvános kulcs jogkivonata, kultúra, újratargethető attribútum vagy verzió) nem egyezik az összehasonlítás mindkét oldalán. Frissítse a szerelvény identitását, hogy mindkét oldal egyezzen.
CP0004 Az szerelvény-leképezés létrehozásakor nem található egyező szerelvény az összehasonlítás egyik oldalán. Győződjön meg arról, hogy a hiányzó szerelvény hozzá van adva a csomaghoz.
CP0005 A abstract rendszer hozzáad egy tagot az összehasonlítás jobb oldalához egy el nem igazított típushoz. Távolítsa el a tagot, vagy ne jegyzetelje a következőként abstract: .
CP0006 Egy tag alapértelmezett implementáció nélkül lett hozzáadva egy felülethez. Ha a cél keretrendszer és a nyelvi verzió támogatja az alapértelmezett implementációkat, vegyen fel egyet, vagy egyszerűen távolítsa el a tagot a felületről.
CP0007 Az osztályhierarchia egyik alaptípusa el lett távolítva az egyik összehasonlított oldalról. Adja vissza az alaptípust. (Ha ez a cél, új alaptípust is bevezethet a hierarchiában.)
CP0008 Egy alapillesztő el lett távolítva az illesztőhierarchiából az egyik összehasonlított oldalról. Adja hozzá a felületet a hierarchiához.
CP0009 Egy olyan típust, amely az egyik oldalon el nem lett vetve, úgy lett széljegyzetekkel eljegyzve, mint sealed a másik összehasonlító oldalon. Távolítsa el a sealed széljegyzetet a típusból.
CP0010 Az enum alapjául szolgáló típus egyik oldalról a másikra módosult. Módosítsa a mögöttes típust a korábbi típusra.
CP0011 Az enumerálásban szereplő tagok értéke egyik oldalról a másikra módosult. Módosítsa a tag értékét a korábbi értékre.
CP0012 A virtual kulcsszó el lett távolítva egy korábban virtuális tagból. Adja hozzá a virtual kulcsszót a taghoz.
CP0013 A virtual kulcsszó olyan taghoz lett hozzáadva, amely korábban nem volt virtuális. Távolítsa el a kulcsszót virtual a tagból.
CP0014 Egy attribútum el lett távolítva egy olyan tagból, amely korábban rendelkezik vele. Adja vissza az attribútumot a taghoz.
CP0015 Az attribútumnak átadott argumentumok egyik oldalról a másikra módosultak. Módosítsa az argumentumokat az attribútumra a korábbiakhoz.
CP0016 Olyan taghoz lett hozzáadva egy attribútum, amely korábban nem rendelkezett vele. Távolítsa el az attribútumot a tagból.
CP0017 A metódus paraméterének neve egyik oldalról a másikra módosult. Módosítsa a paraméter nevét a korábban használtra.
CP0018 A sealed kulcsszó egy korábban nem lezárt felülettaghoz lett hozzáadva. Távolítsa el a kulcsszót sealed a felülettagból.
CP0019 A tagok láthatósága egyik oldalról a másikra csökkent. Módosítsa a tag láthatóságát a korábbiakhoz.
CP0020 A tagok láthatósága az egyik oldalról a másikra bővült. Módosítsa a tag láthatóságát a korábbiakhoz.
CP1001 Nem található egyező szerelvény a keresési könyvtárakban. (Nem alkalmazható csomagérvényesítésre, csak az API Compat közvetlen használatakor.) Adja meg a keresési könyvtárat az egyező szerelvények betöltésekor a következő használatával AssemblySymbolLoader: .
CP1002 A rendszer nem talált referenciaszerelvényt az aktuális célkeret feloldott könyvtáraiban összehasonlítandó szerelvények betöltésekor. Adja meg azt a könyvtár elérési útját, ahol a szerelvény a következő MSBuild elem használatával található: <PackageValidationReferencePath Include="<path>" TargetFramework="<tfm>" />.
CP1003 Nem volt megadva keresési könyvtár a cél-keretrendszer monikeréhez, amely esetében a csomagérvényesítés API Compat-et futtat. Adja meg a keresési könyvtárat a cél-keretrendszerre mutató hivatkozások kereséséhez a következő MSBuild elem használatával: <PackageValidationReferencePath Include="<path>" TargetFramework="<tfm>" />.

Letiltás

Az egyes diagnosztikai azonosítókat az alábbi módokon tilthatja le:

Letiltási fájl

Ha el szeretné tiltani a szándékos módosítások kompatibilitási hibáit, adjon hozzá egy CompatibilitySuppressions.xml fájlt a projekthez. A csomagérvényesítés és a szerelvény ellenőrzése ugyanazt a tiltó fájlformátumot használja.

Ezt a fájlt kétféleképpen hozhatja létre automatikusan:

  • Ha a projektet a parancssorból csomagolja, adja át /p:GenerateCompatibilitySuppressionFile=true .
  • Ha hozzáadja a következő tulajdonságot a projektfájlhoz: <GenerateCompatibilitySuppressionFile>true</GenerateCompatibilitySuppressionFile>.

A letiltási fájl így néz ki.

<?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 a letiltandó hiba azonosítóját adja meg.
  • Target megadja, hogy a kódban hol tiltsa le a diagnosztikai azonosítókat.
  • Left az APICompat-összehasonlítás bal operandusát adja meg.
  • Right az APICompat-összehasonlítás megfelelő operandusát adja meg.
  • IsBaselineSuppression meghatározza, hogy a letiltást alkalmazza-e egy alapkonfiguráció-ellenőrzésre (true) vagy sem (false).

NoWarn-fordító lehetőség

Az egyes diagnosztikai azonosítókat a NoWarn fordítójelölőn keresztül is letilthatja csomagonként vagy globálisan.

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    ...
    <!-- The following NoWarn suppresses PKV001 project-wide -->
    <NoWarn>$(NoWarn);PKV001</NoWarn>
  </PropertyGroup>
</Project>