Kody błędów weryfikacji pakietu/zestawu
Ten artykuł referencyjny zawiera listę wszystkich kodów błędów generowanych przez walidację pakietu i walidację zestawu.
Lista kodów błędów
Identyfikator diagnostyczny | opis | Zalecana akcja |
---|---|---|
PKV001 | Brak zasobu czasu kompilacji dla zgodnej platformy. | Dodaj odpowiednią platformę docelową do projektu. |
PKV002 | Brak zasobu czasu wykonywania dla zgodnej platformy i środowiska uruchomieniowego. | Dodaj odpowiedni zasób dla odpowiedniego środowiska uruchomieniowego do pakietu. |
PKV003 | Brak elementu zawartości niezależnego od czasu wykonywania dla zgodnej platformy. | Dodaj odpowiednią niezależną strukturę docelową czasu wykonywania do projektu. |
PKV004 | Brak zgodnego elementu zawartości czasu wykonywania dla elementu zawartości w czasie kompilacji. | Dodaj odpowiedni zasób czasu wykonywania do pakietu. |
PKV005 | Brak zgodnego elementu zawartości czasu wykonywania dla elementu zawartości w czasie kompilacji i obsługiwanego identyfikatora środowiska uruchomieniowego. | Dodaj odpowiedni zasób czasu wykonywania do pakietu. |
PKV006 | Struktura docelowa jest porzucana w najnowszej wersji. | Dodaj odpowiednią platformę docelową do projektu. |
PKV007 | Para docelowa struktury i identyfikatora środowiska uruchomieniowego jest porzucana w najnowszej wersji. | Dodaj odpowiednią strukturę docelową i identyfikator RID do projektu. |
CP0001 | W porównaniu do zestawu brakuje typu, wyliczenia, rekordu lub struktury widocznej poza zestawem, jeśli jest to wymagane. | Dodaj brakujący typ do zestawu, w którym brakuje go. |
CP0002 | Brak elementu członkowskiego widocznego poza zestawem w porównaniu, jeśli jest wymagany do obecności. | Dodaj brakujący element członkowski do zestawu, w którym brakuje go. |
CP0003 | Część tożsamości zestawu (nazwa, token klucza publicznego, kultura, atrybut retargetable lub wersja) nie jest zgodna po obu stronach porównania. | Zaktualizuj tożsamość zestawu, aby obie strony odpowiadały. |
CP0004 | Nie można odnaleźć pasującego zestawu po jednej stronie porównania podczas tworzenia mapowania zestawów. | Upewnij się, że brakujący zestaw został dodany do pakietu. |
CP0005 | Element abstract członkowski został dodany po prawej stronie porównania z niezaznaczonego typu. |
Usuń element członkowski lub nie dodaj do niego adnotacji jako abstract . |
CP0006 | Element członkowski został dodany do interfejsu bez domyślnej implementacji. | Jeśli platforma docelowa i wersja języka obsługują domyślne implementacje, dodaj jeden lub po prostu usuń element członkowski z interfejsu. |
CP0007 | Typ podstawowy w hierarchii klas został usunięty z jednej z porównywanych stron. | Dodaj typ podstawowy z powrotem. (Nowy typ podstawowy można wprowadzić w hierarchii, jeśli jest to zamierzone). |
CP0008 | Interfejs podstawowy został usunięty z hierarchii interfejsu z jednej z porównywanych stron. | Dodaj interfejs z powrotem do hierarchii. |
CP0009 | Typ, który był nierozpoznany po jednej stronie, był adnotacjami, jak sealed po drugiej stronie porównywanej. |
Usuń adnotację sealed z typu . |
CP0010 | Podstawowy typ wyliczenia został zmieniony z jednej strony na drugi. | Zmień typ bazowy z powrotem na poprzednio. |
CP0011 | Wartość elementu członkowskiego w wyliczenia została zmieniona z jednej strony na drugą. | Zmień wartość elementu członkowskiego z powrotem na poprzednią wartość. |
CP0012 | Słowo virtual kluczowe zostało usunięte z elementu członkowskiego, który był wcześniej wirtualny. |
virtual Dodaj słowo kluczowe z powrotem do elementu członkowskiego. |
CP0013 | Słowo virtual kluczowe zostało dodane do elementu członkowskiego, który wcześniej nie był wirtualny. |
virtual Usuń słowo kluczowe z elementu członkowskiego. |
CP0014 | Atrybut został usunięty z elementu członkowskiego, który miał go wcześniej. | Dodaj atrybut z powrotem do elementu członkowskiego. |
CP0015 | Argumenty przekazane do atrybutu zostały zmienione z jednej strony na drugą. | Zmień argumenty na atrybut z powrotem na to, co wcześniej były. |
CP0016 | Atrybut został dodany do elementu członkowskiego, który wcześniej go nie miał. | Usuń atrybut z elementu członkowskiego. |
CP0017 | Nazwa parametru metody została zmieniona z jednej strony na drugą. | Zmień nazwę parametru z powrotem na poprzednią wartość. |
CP0018 | Słowo sealed kluczowe zostało dodane do elementu członkowskiego interfejsu, który wcześniej nie został zapieczętowany. |
sealed Usuń słowo kluczowe z elementu członkowskiego interfejsu. |
CP0019 | Widoczność elementu członkowskiego została zmniejszona z jednej strony do drugiej. | Zmień widoczność elementu członkowskiego z powrotem na to, co było wcześniej. |
CP0020 | Widoczność elementu członkowskiego została rozszerzona z jednej strony do drugiej. | Zmień widoczność elementu członkowskiego z powrotem na to, co było wcześniej. |
CP1001 | Nie można odnaleźć pasującego zestawu w katalogach wyszukiwania. (Nie dotyczy walidacji pakietu, tylko w przypadku bezpośredniego używania interfejsu API Compat). | Podaj katalog wyszukiwania podczas ładowania pasujących zestawów przy użyciu polecenia AssemblySymbolLoader . |
CP1002 | Nie można odnaleźć zestawu referencyjnego podczas ładowania zestawów do porównania w rozwiązanych katalogach dla bieżącej platformy docelowej. | Dołącz ścieżkę katalogu, w której można znaleźć ten zestaw, używając następującego elementu MSBuild: <PackageValidationReferencePath Include="<path>" TargetFramework="<tfm>" /> . |
CP1003 | Nie podano katalogu wyszukiwania dla nazwy docelowej platformy docelowej, dla którego jest uruchomiona weryfikacja pakietu, dla którego jest uruchomiony interfejs API Compat. | Podaj katalog wyszukiwania, aby znaleźć odwołania dla tej platformy docelowej przy użyciu następującego elementu MSBuild: <PackageValidationReferencePath Include="<path>" TargetFramework="<tfm>" /> . |
Jak pominąć
Poszczególne identyfikatory diagnostyczne można pominąć na jeden z następujących sposobów:
- Za pomocą pliku pomijania.
- Za pomocą flagi kompilatora.
NoWarn
Plik pomijania
Aby pominąć błędy zgodności dla zamierzonych zmian, dodaj plik CompatibilitySuppressions.xml do projektu. Walidacja pakietu i walidacja zestawu używają tego samego formatu pliku pomijania.
Ten plik można wygenerować automatycznie na jeden z dwóch sposobów:
/p:GenerateCompatibilitySuppressionFile=true
Przekazując, jeśli pakujesz projekt z wiersza polecenia.- Dodając następującą właściwość do pliku projektu:
<GenerateCompatibilitySuppressionFile>true</GenerateCompatibilitySuppressionFile>
.
Plik pomijania wygląda następująco.
<?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
określa identyfikator błędu do pomijania.Target
określa, gdzie w kodzie należy pominąć identyfikatory diagnostyczne.Left
określa lewy operand porównania interfejsu APICompat.Right
określa prawy operand porównania interfejsu APICompat.IsBaselineSuppression
Określa, czy należy zastosować pomijanie do weryfikacji punktu odniesienia () lubtrue
nie (false
).
Opcja kompilatora NoWarn
Można również pominąć poszczególne identyfikatory diagnostyczne za pomocą flagi kompilatora NoWarn
— na pakiet lub globalnie.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
...
<!-- The following NoWarn suppresses PKV001 project-wide -->
<NoWarn>$(NoWarn);PKV001</NoWarn>
</PropertyGroup>
</Project>