Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
I den här referensartikeln visas alla felkoder som genereras av paketverifiering och sammansättningsvalidering.
Lista över felkoder
| Diagnostik-ID | beskrivning | Rekommenderad åtgärd | 
|---|---|---|
| PKV001 | En kompileringstidstillgång för ett kompatibelt ramverk saknas. | Lägg till lämpligt målramverk i projektet. | 
| PKV002 | En körningstillgång för ett kompatibelt ramverk och körning saknas. | Lägg till lämplig tillgång för motsvarande körning i paketet. | 
| PKV003 | En oberoende körningstillgång för ett kompatibelt ramverk saknas. | Lägg till lämpligt oberoende målramverk för körning i projektet. | 
| PKV004 | En kompatibel körningstillgång för en kompileringstillgång saknas. | Lägg till lämplig körningstillgång i paketet. | 
| PKV005 | En kompatibel körningstillgång för en kompileringstillgång och en körningsidentifierare som stöds saknas. | Lägg till lämplig körningstillgång i paketet. | 
| PKV006 | Målramverket tas bort i den senaste versionen. | Lägg till lämpligt målramverk i projektet. | 
| PKV007 | Målramverket och körningsidentifierarparet tas bort i den senaste versionen. | Lägg till lämpligt målramverk och RID i projektet. | 
| CP0001 | En typ, uppräkning, post eller struct som visas utanför sammansättningen saknas i den jämförda sammansättningen när det krävs för att finnas. | Lägg till den saknade typen i sammansättningen där den saknas. | 
| CP0002 | En medlem som är synlig utanför sammansättningen saknas i den jämförde sammansättningen när det krävs för att vara närvarande. | Lägg till den saknade medlemmen i sammansättningen där den saknas. | 
| CP0003 | En del av sammansättningsidentiteten (namn, token för offentlig nyckel, kultur, ommålbart attribut eller version) matchar inte på båda sidor av jämförelsen. | Uppdatera sammansättningsidentiteten så att båda sidor matchar. | 
| CP0004 | Det gick inte att hitta en matchande sammansättning på ena sidan av jämförelsen när sammansättningsmappningen skapades. | Kontrollera att den saknade sammansättningen har lagts till i paketet. | 
| CP0005 | En abstractmedlem lades till på höger sida av jämförelsen med en oförseglade typ. | Ta bort medlemmen eller kommentera den inte som abstract. | 
| CP0006 | En medlem har lagts till i ett gränssnitt utan en standardimplementering. | Om målramverket och språkversionen stöder standardimplementeringar lägger du till en eller bara tar bort medlemmen från gränssnittet. | 
| CP0007 | En bastyp i klasshierarkin togs bort från en av de jämförd sidorna. | Lägg till bastypen igen. (En ny bastyp kan introduceras i hierarkin om det är avsett.) | 
| CP0008 | Ett basgränssnitt har tagits bort från gränssnittshierarkin från en av de jämförde sidorna. | Lägg till gränssnittet i hierarkin igen. | 
| CP0009 | En typ som inte öppnades på ena sidan kommenterades som sealedpå den andra jämförda sidan. | Ta bort kommentaren sealedfrån typen . | 
| CP0010 | Den underliggande typen av ett uppräkning har ändrats från ena sidan till den andra. | Ändra tillbaka den underliggande typen till vad den var tidigare. | 
| CP0011 | Värdet för en medlem i ett uppräkning har ändrats från ena sidan till den andra. | Ändra tillbaka värdet för medlemmen till vad den var tidigare. | 
| CP0012 | Nyckelordet virtualtogs bort från en medlem som tidigare var virtuell. | Lägg tillbaka nyckelordet virtualtill medlemmen. | 
| CP0013 | Nyckelordet virtuallades till i en medlem som tidigare inte var virtuell. | Ta bort nyckelordet virtualfrån medlemmen. | 
| CP0014 | Ett attribut har tagits bort från en medlem som tidigare hade det. | Lägg till attributet tillbaka till medlemmen. | 
| CP0015 | Argumenten som skickades till ett attribut ändrades från ena sidan till den andra. | Ändra argumenten till attributet tillbaka till det de var tidigare. | 
| CP0016 | Ett attribut lades till i en medlem som tidigare inte hade det. | Ta bort attributet från medlemmen. | 
| CP0017 | Namnet på en metodparameter har ändrats från ena sidan till den andra. | Ändra tillbaka parameterns namn till vad det var tidigare. | 
| CP0018 | Nyckelordet sealedlades till i en gränssnittsmedlem som tidigare inte var förseglad. | Ta bort nyckelordet sealedfrån gränssnittsmedlemmen. | 
| CP0019 | En medlems synlighet minskades från ena sidan till den andra. | Ändra tillbaka medlemmens synlighet till vad den var tidigare. | 
| CP0020 | Synligheten för en medlem utökades från ena sidan till den andra. | Ändra tillbaka medlemmens synlighet till vad den var tidigare. | 
| CP1001 | Det gick inte att hitta en matchande sammansättning i sökkatalogerna. (Gäller inte för paketverifiering, endast när du använder API Compat direkt.) | Ange sökkatalogen när matchande sammansättningar läses in med hjälp av AssemblySymbolLoader. | 
| CP1002 | Det gick inte att hitta en referenssammansättning när sammansättningarna lästes in för jämförelse i de lösta katalogerna för det aktuella målramverket. | Inkludera katalogsökvägen där sammansättningen kan hittas med hjälp av följande MSBuild-objekt: <PackageValidationReferencePath Include="<path>" TargetFramework="<tfm>" />. | 
| CP1003 | Det fanns ingen sökkatalog för målramverkets moniker som paketverifieringen kör API Compat för. | Ange sökkatalogen för att hitta referenser för det målramverket med hjälp av följande MSBuild-objekt: <PackageValidationReferencePath Include="<path>" TargetFramework="<tfm>" />. | 
Så här undertrycker du
Du kan utelämna enskilda diagnostik-ID:er på något av följande sätt:
- Via en undertryckningsfil.
- Via kompilatorflagganNoWarn.
Undertryckningsfil
Om du vill förhindra kompatibilitetsfel för avsiktliga ändringar lägger du till en CompatibilitySuppressions.xml fil i projektet. Paketverifiering och sammansättningsvalidering använder samma undertryckningsfilformat.
Du kan generera den här filen automatiskt på något av två sätt:
- Genom att skicka /p:GenerateCompatibilitySuppressionFile=trueom du packar projektet från kommandoraden.
- Genom att lägga till följande egenskap i projektfilen: <GenerateCompatibilitySuppressionFile>true</GenerateCompatibilitySuppressionFile>.
Undertryckningsfilen ser ut så här.
<?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>
- DiagnosticIdanger ID:t för felet som ska ignoreras.
- Targetanger var i koden som diagnostik-ID:t ska utelämnas.
- Leftanger den vänstra operanden i en APICompat-jämförelse.
- Rightanger rätt operand för en APICompat-jämförelse.
- IsBaselineSuppressionanger om undertryckningen ska tillämpas på en baslinjeverifiering (- true) eller inte (- false).
NoWarn-kompilatoralternativ
Du kan också utelämna enskilda diagnostik-ID:er via NoWarn kompileringsflaggan, antingen per paket eller globalt.
<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    ...
    <!-- The following NoWarn suppresses PKV001 project-wide -->
    <NoWarn>$(NoWarn);PKV001</NoWarn>
  </PropertyGroup>
</Project>