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 abstract açı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 AssemblySymbolLoader eş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:
- Bir gizleme dosyası aracılığıyla.
- Derleyici bayrağı aracılığıyla
NoWarn
.
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ı (true
false
) 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>