Paket/derleme doğrulama hata kodları

Bu başvuru makalesi, paket doğrulaması ve derleme doğrulaması tarafından oluşturulan tüm hata kodlarını listeler.

Hata kodlarının listesi

Tanılama Kimliği Açıklama Önerilen eylem
PKV001 Uyumlu bir çerçeve için derleme zamanı varlığı eksik. Projeye uygun hedef çerçeveyi ekleyin.
PKV002 Uyumlu bir çerçeve ve çalışma zamanı için çalışma zamanı varlığı eksik. Pakete ilgili çalışma zamanı için uygun varlığı ekleyin.
PKV003 Uyumlu bir çerçeve için çalışma zamanından bağımsız varlık eksik. Projeye uygun çalışma zamanından bağımsız hedef çerçeveyi ekleyin.
PKV004 Derleme zamanı varlığı için uyumlu bir çalışma zamanı varlığı eksik. Pakete uygun çalışma zamanı varlığını ekleyin.
PKV005 Derleme zamanı varlığı ve desteklenen çalışma zamanı tanımlayıcısı için uyumlu bir çalışma zamanı varlığı eksik. Pakete uygun çalışma zamanı varlığını ekleyin.
PKV006 Hedef çerçeve en son sürümde bırakılır. Projeye uygun hedef çerçeveyi ekleyin.
PKV007 Hedef çerçeve ve çalışma zamanı tanımlayıcı çifti en son sürümde bırakılır. Projeye uygun hedef çerçeveyi ve RID'yi ekleyin.
CP0001 Derleme dışında görünen bir tür, sabit listesi, kayıt veya yapı, mevcut olması gerektiğinde karşılaştırılan derlemede eksiktir. Eksik türü eksik olan derlemeye ekleyin.
CP0002 Derlemenin dışında görünen bir üye, mevcut olması gerektiğinde karşılaştırılan derlemede eksiktir. Eksik üyeyi eksik olduğu derlemeye ekleyin.
CP0003 Derleme kimliğinin (ad, ortak anahtar belirteci, kültür, yeniden güncelleştirilebilir öznitelik veya sürüm) bir bölümü karşılaştırmanın her iki tarafında da eşleşmiyor. Her iki tarafın da eşleşmesi için derleme kimliğini güncelleştirin.
CP0004 Derleme eşlemesi oluşturulurken karşılaştırmanın bir tarafında eşleşen bir derleme bulunamadı. Eksik derlemenin pakete eklendiğinden emin olun.
CP0005 Korumasız abstract bir türle karşılaştırmanın sağ tarafına bir üye eklendi. Üyeyi kaldırın veya olarak abstractaçıklama eklemeyin.
CP0006 Varsayılan uygulama olmadan bir arabirime üye eklendi. Hedef çerçeve ve dil sürümü varsayılan uygulamaları destekliyorsa, bir tane ekleyin veya yalnızca üyeyi arabirimden kaldırın.
CP0007 Sınıf hiyerarşisinde bir temel tür, karşılaştırılan taraflardan birinden kaldırıldı. Temel türü geri ekleyin. (Amaçlanan hiyerarşiye yeni bir temel tür eklenebilir.)
CP0008 Karşılaştırılan taraflardan birinden arabirim hiyerarşisinden bir temel arabirim kaldırıldı. Arabirimi hiyerarşiye geri ekleyin.
CP0009 Bir tarafta korumasız olan bir türe, karşılaştırıldığında diğer tarafta olduğu gibi sealed açıklama eklenmiştir. Ek açıklamayı sealed türünden kaldırın.
CP0010 Temel alınan sabit listesi türü bir taraftan diğerine değiştirildi. Temel alınan türü daha önce olduğu gibi değiştirin.
CP0011 Bir sabit listesi içindeki üyenin değeri bir taraftan diğerine değiştirildi. Üyenin değerini daha önce olduğu gibi değiştirin.
CP0012 Anahtar virtual sözcük, daha önce sanal olan bir üyeden kaldırıldı. Anahtar sözcüğünü virtual üyeye geri ekleyin.
CP0013 Anahtar virtual sözcük, daha önce sanal olmayan bir üyeye eklendi. Üyeden virtual anahtar sözcüğünü kaldırın.
CP0014 Daha önce sahip olduğu bir üyeden bir öznitelik kaldırıldı. özniteliğini üyeye geri ekleyin.
CP0015 Bir özniteliğe geçirilen bağımsız değişkenler bir taraftan diğerine değiştirildi. Bağımsız değişkenleri özniteliğine dönüştürerek daha önce oldukları gibi değiştirin.
CP0016 Daha önce sahip olmayan bir üyeye öznitelik eklendi. özniteliğini üyeden kaldırın.
CP0017 Bir yöntemin parametresinin adı bir taraftan diğerine değiştirildi. Parametrenin adını eski adıyla değiştirin.
CP0018 Anahtar sealed sözcük, daha önce korumalı olmayan bir arabirim üyesine eklendi. sealed Arabirim üyesinden anahtar sözcüğünü kaldırın.
CP0019 Bir üyenin görünürlüğü bir taraftan diğerine azaltıldı. Üyenin görünürlüğünü daha önce olduğu gibi değiştirin.
CP0020 Bir üyenin görünürlüğü bir taraftan diğerine genişletildi. Üyenin görünürlüğünü daha önce olduğu gibi değiştirin.
CP1001 Eşleşen bir derleme arama dizinlerinde bulunamadı. (Paket doğrulaması için geçerli değildir, yalnızca API Compat doğrudan kullanılırken geçerlidir.) kullanarak AssemblySymbolLoadereşleşen derlemeleri yüklerken arama dizinini sağlayın.
CP1002 Geçerli hedef çerçevenin çözümlenen dizinlerinde karşılaştırmak üzere derlemeler yüklenirken bir başvuru derlemesi bulunamadı. Şu MSBuild öğesini kullanarak bu derlemenin bulunabileceği dizin yolunu ekleyin: <PackageValidationReferencePath Include="<path>" TargetFramework="<tfm>" />.
CP1003 Paket doğrulamasının API Compat çalıştırıldığı hedef çerçeve adı için hiçbir arama dizini sağlanmadı. Aşağıdaki MSBuild öğesini kullanarak bu hedef çerçevenin başvurularını bulmak için arama dizinini sağlayın: <PackageValidationReferencePath Include="<path>" TargetFramework="<tfm>" />.

Gizleme

Tek tek tanılama kimliklerini aşağıdaki yollardan biriyle gizleyebilirsiniz:

Gizleme dosyası

Kasıtlı değişikliklerde uyumluluk hatalarını engellemek için projenize bir CompatibilitySuppressions.xml dosyası ekleyin. Paket doğrulama ve derleme doğrulaması aynı gizleme dosyası biçimini kullanır.

Bu dosyayı iki yoldan biriyle otomatik olarak oluşturabilirsiniz:

  • Projeyi komut satırından paketlediyseniz geçirerek /p:GenerateCompatibilitySuppressionFile=true .
  • Proje dosyanıza aşağıdaki özelliği ekleyerek: <GenerateCompatibilitySuppressionFile>true</GenerateCompatibilitySuppressionFile>.

Gizleme dosyası şöyle görünü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>
  • DiagnosticId , gizlenecek hatanın kimliğini belirtir.
  • Target , tanılama kimliklerini engellemek için kodun neresinde olduğunu belirtir.
  • Left APICompat karşılaştırmasının sol işlenenini belirtir.
  • Right APICompat karşılaştırmasının doğru işlenenini belirtir.
  • IsBaselineSuppression, gizlemenin bir temel doğrulamaya () uygulanıp uygulanmayacağını (truefalse) belirtir.

NoWarn derleyici seçeneği

Ayrıca, tek tek tanılama kimliklerini paket başına veya genel olarak derleyici bayrağı aracılığıyla NoWarn gizleyebilirsiniz.

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