Peverify.exe (PEVerify aracı)

PEVerify aracı, Microsoft ara dili (MSIL) (derleyici yazıcıları ve betik altyapısı geliştiricileri gibi) oluşturan geliştiricilerin MSIL kodlarının ve ilişkili meta verilerinin tür güvenliği gereksinimlerini karşılayıp karşılamadığını belirlemesine yardımcı olur. Bazı derleyiciler yalnızca belirli dil yapılarını kullanmaktan kaçındığınızda doğrulanabilir şekilde tür kullanımı uyumlu kod üretir. Böyle bir derleyici kullanıyorsanız kodunuzun tür güvenliğini tehlikeye atmadığınızı doğrulamak isteyebilirsiniz. MSIL ve meta verileri denetlemek için dosyalarınızda PEVerify aracını çalıştırabilirsiniz.

Bu araç, Visual Studio ile birlikte otomatik olarak yüklenir. Aracı çalıştırmak için Visual Studio Geliştirici Komut İstemi'ni veya Visual Studio Geliştirici PowerShell'i kullanın.

Sözdizimi

peverify filename [options]

Parametreler

Bağımsız değişken Açıklama
filename MSIL ve meta verilerinin denetleneceği taşınabilir yürütülebilir (PE) dosyası.
Seçenek Açıklama
/break=maxErrorCount maxErrorCount hatalarından sonra doğrulamayı durdurur.

Bu parametre .NET Framework sürüm 2.0 ve sonrasında desteklenmez.
/Saat Milisaniye olarak aşağıdaki doğrulama zamanlarını ölçer ve bildirir:

MD Val. çevrim
Meta veri doğrulama döngüsü

MD Val. Saf
Meta veri doğrulama safı

IL Ver. çevrim
Microsoft ara dili (MSIL) doğrulama döngüsü

IL Ver pure
MSIL doğrulaması saf

MD Val. döngüsü ve IL Ver. döngüsü süreleri, gerekli başlatma ve kapatma yordamlarını gerçekleştirmek için gereken süreyi içerir. MD Val. pure ve IL Ver saf süreleri yalnızca doğrulama veya doğrulama gerçekleştirmek için gereken süreyi yansıtır.
/Yardım Araç için komut sözdizimini ve seçenekleri görüntüler.
/Hresult Onaltılık biçimde hata kodlarını görüntüler.
/ignore=hex.code [, hex.code] Belirtilen hata kodlarını dikkate almaz.
/ignore=@responseFile Belirtilen yanıt dosyasında listelenen hata kodlarını dikkate almaz.
/ıl Dosya adı tarafından belirtilen derlemede uygulanan yöntemler için MSIL türü güvenlik doğrulama denetimleri gerçekleştirir. Araç, /quiet seçeneğini belirtmediğiniz sürece bulunan her sorun için ayrıntılı açıklamalar döndürür.
/md Dosya adı tarafından belirtilen derlemede meta veri doğrulama denetimleri gerçekleştirir. Bu seçenek, dosya içindeki tam meta veri yapısını gösterir ve karşılaşılan tüm doğrulama sorunlarını bildirir.
/nologo Ürün sürümü ve telif hakkı bilgilerinin görüntülenmesini önler.
/nosymbols .NET Framework sürüm 2.0'da geriye dönük uyumluluk için satır numaralarını gizler.
/quiet Sessiz mod kullanılacağını belirtir; doğrulama sorunu raporlarının çıkışını önler. Peverify.exe dosyanın tür kullanımı uyumlu olup olmadığını bildirmeye devam eder, ancak tür güvenliği doğrulamasını önleyen sorunlar hakkında bilgi vermez.
/transparent Yalnızca saydam yöntemleri doğrulayın.
/Benzer -siz Yinelenen hata kodlarını dikkate almaz.
/verbose .NET Framework sürüm 2.0'da MSIL doğrulama iletilerinde ek bilgiler görüntülenir.
/? Araç için komut sözdizimini ve seçenekleri görüntüler.

Açıklamalar

Ortak dil çalışma zamanı, güvenlik ve yalıtım mekanizmalarını zorlamaya yardımcı olmak için uygulama kodunun tür kullanımı uyumlu yürütülmesini kullanır. Normalde, güvenilir türde güvenli olmayan kod çalıştırılamaz, ancak güvenlik ilkesini güvenilir ancak doğrulanamayan kodun yürütülmesine izin verecek şekilde ayarlayabilirsiniz.

/md veya /il seçenekleri belirtilmezse, Peverify.exe her iki denetim türünü de gerçekleştirir. Peverify.exe önce /md denetimleri gerçekleştirir. Hata yoksa / il denetimleri yapılır. Hem /md hem de /il belirtirseniz, meta verilerde hatalar olsa bile /il denetimleri yapılır. Bu nedenle, meta veri hatası yoksa, peverifydosya adı dosya adı/md/il ile eşdeğerdir.

Peverify.exe, veri akışı analizine ve geçerli meta veriye ilişkin birkaç yüz kuralı içeren bir listeye göre kapsamlı MSIL doğrulama denetimleri yapar. Peverify.exe gerçekleştirdiği denetimler hakkında ayrıntılı bilgi için Windows SDK'sının Araçlar Geliştirici Kılavuzu klasöründeki "Meta Veri Doğrulama Belirtimi" ve "MSIL Yönerge Kümesi Belirtimi" bölümüne bakın.

.NET Framework sürüm 2.0 veya üzeri, aşağıdaki MSIL yönergeleri kullanılarak belirtilen doğrulanabilir byref dönüşleri destekler: dup, ldsflda, ldflda, ldelema, call, ve unbox.

Örnekler

Aşağıdaki komut, derlemesinde myAssembly.exeuygulanan yöntemler için meta veri doğrulama denetimleri ve MSIL türü güvenlik doğrulaması denetimleri gerçekleştirir.

peverify myAssembly.exe /md /il

Yukarıdaki isteğin başarıyla tamamlanmasından sonra Peverify.exe aşağıdaki iletiyi görüntüler.

All classes and methods in myAssembly.exe Verified

Aşağıdaki komut, derlemesinde myAssembly.exeuygulanan yöntemler için meta veri doğrulama denetimleri ve MSIL türü güvenlik doğrulaması denetimleri gerçekleştirir. Araç bu denetimleri gerçekleştirmek için gereken süreyi görüntüler.

peverify myAssembly.exe /md /il /clock

Yukarıdaki isteğin başarıyla tamamlanmasından sonra Peverify.exe aşağıdaki iletiyi görüntüler.

All classes and methods in myAssembly.exe Verified
Timing: Total run     320 msec
        MD Val.cycle  40 msec
        MD Val.pure   10 msec
        IL Ver.cycle  270 msec
        IL Ver.pure   230 msec

Aşağıdaki komut, derlemesinde myAssembly.exeuygulanan yöntemler için meta veri doğrulama denetimleri ve MSIL türü güvenlik doğrulaması denetimleri gerçekleştirir. Ancak en fazla hata sayısı olan 100'e ulaştığında Peverify.exe durur. Araç belirtilen hata kodlarını dikkate almaz.

peverify myAssembly.exe /break=100 /ignore=0x12345678,0xABCD1234

Aşağıdaki komut yukarıdaki örnekle aynı sonucu verir, ancak yanıt dosyasında ignoreErrors.rspyoksaymak için hata kodlarını belirtir.

peverify myAssembly.exe /break=100 /ignore@ignoreErrors.rsp

Yanıt dosyası hata kodlarının virgülle ayrılmış listesini içerebilir.

0x12345678, 0xABCD1234

Alternatif olarak, yanıt dosyası her satırda bir hata kodu olacak şekilde de biçimlendirilebilir.

0x12345678
0xABCD1234

Ayrıca bkz.