Megosztás a következőn keresztül:


Peverify.exe (PEVerify eszköz)

A PEVerify eszköz segít a Microsoft köztes nyelvét (MSIL) létrehozó fejlesztőknek (például fordítóíróknak és szkriptmotor-fejlesztőknek) annak megállapításában, hogy AZ MSIL-kódjuk és a kapcsolódó metaadatok megfelelnek-e a típusbiztonsági követelményeknek. Egyes fordítók csak akkor hoznak létre ellenőrizhetően típusbiztos kódot, ha nem használ bizonyos nyelvi szerkezeteket. Ha ilyen fordítót használ, érdemes lehet ellenőriznie, hogy nem veszélyeztette-e a kód típusát. A PEVerify eszközt a fájlokon futtatva ellenőrizheti az MSIL-t és a metaadatokat.

Ez az eszköz automatikusan telepítve van a Visual Studióval. Az eszköz futtatásához használja a Visual Studio fejlesztői parancssorát vagy a Visual Studio Developer PowerShellt.

Syntax

peverify filename [options]

Paraméterek

Argumentum Leírás
fájlnév A hordozható végrehajtható (PE) fájl, amelynek ellenőrzéséhez ellenőrizni kell az MSIL-t és a metaadatokat.
Lehetőség Leírás
/break= maxErrorCount Megszakítja az ellenőrzést a maxErrorCount hibák után.

Ez a paraméter nem támogatott .NET-keretrendszer 2.0-s vagy újabb verziójában.
/óra A következő ellenőrzési időpontokat méri és jelenti ezredmásodpercben:

MD Val. ciklus
Metaadatok érvényesítési ciklusa

MD Val. tiszta
Metaadatok ellenőrzése tiszta

IL Ver. ciklus
Microsoft köztes nyelv (MSIL) ellenőrzési ciklusa

IL Ver pure
MSIL-ellenőrzés tiszta

Az MD Val. ciklus és az IL Ver. ciklusidők tartalmazzák a szükséges indítási és leállítási eljárások végrehajtásához szükséges időt. Az MD Val. tiszta és az IL Ver tiszta ideje csak az ellenőrzés vagy ellenőrzés elvégzéséhez szükséges időt tükrözi.
/segítség Megjeleníti az eszköz parancsszintaxisát és beállításait.
/hresult Hexadecimális formátumban jeleníti meg a hibakódokat.
/ignore= hex.code [, hex.code] Figyelmen kívül hagyja a megadott hibakódokat.
/ignore=@ responseFile Figyelmen kívül hagyja a megadott válaszfájlban felsorolt hibakódokat.
/Il MSIL típusú biztonsági ellenőrzést végez a fájlnév által megadott szerelvényben implementált metódusok esetében. Az eszköz az egyes talált problémák részletes leírását adja vissza, kivéve, ha megadja a /quiet beállítást.
/Md Metaadat-érvényesítési ellenőrzéseket végez a fájlnév által megadott szerelvényen. Ez a beállítás végigvezeti a teljes metaadat-struktúrát a fájlon belül, és bemutatja az összes felmerülő érvényesítési problémát.
/nologo Letiltja a termékverzió és a szerzői jogi információk megjelenítését.
/nosymbols A .NET-keretrendszer 2.0-s verziójában letiltja a vonalszámokat a visszamenőleges kompatibilitás érdekében.
/halk Csendes módot ad meg; letiltja az ellenőrzési problémajelentések kimenetét. Peverify.exe továbbra is jelentést készít arról, hogy a fájl biztonságos-e, de nem jelent információt a típusbiztonsági ellenőrzést megakadályozó problémákról.
/transparent Csak az transzparens metódusokat ellenőrizze.
/egyedülálló Figyelmen kívül hagyja az ismétlődő hibakódokat.
/bőbeszédű A .NET-keretrendszer 2.0-s verziójában további információkat jelenít meg az MSIL ellenőrző üzeneteiben.
/? Megjeleníti az eszköz parancsszintaxisát és beállításait.

Megjegyzések

A közös nyelvi futtatókörnyezet az alkalmazáskód típusbiztos végrehajtására támaszkodik a biztonsági és elkülönítési mechanizmusok kényszerítése érdekében. A nem ellenőrizhetően biztonságos kódot általában nem lehet futtatni, bár beállíthatja a biztonsági szabályzatot, hogy lehetővé tegye a megbízható, de nem ellenőrizhető kód végrehajtását.

Ha sem az /md, sem a /il beállítás nincs megadva, Peverify.exe mindkét típusú ellenőrzést végrehajtja. Peverify.exe először /md ellenőrzéseket hajt végre. Ha nincsenek hibák, a /il ellenőrzés történik. Ha az /md és a /il értéket is megadja, a /il ellenőrzések akkor is történnek, ha a metaadatokban hibák lépnek fel. Így ha nincsenek metaadat-hibák, a peverify fájlnév egyenértékű a peverify fájlnév /md /il azonosítóval.

Peverify.exe átfogó MSIL-ellenőrzési ellenőrzéseket végez adatfolyam-elemzés alapján, valamint több száz érvényes metaadat-szabályt tartalmazó listát. A Peverify.exe elvégzett ellenőrzésekről a Windows SDK Eszközfejlesztői útmutató mappájában található "Metadata Validation Specification" (Metaadat-érvényesítési specifikáció) és az "MSIL utasításkészlet specifikációja" című témakörben talál részletes információt.

.NET-keretrendszer 2.0-s vagy újabb verziója a következő MSIL-utasítások alapján megadott ellenőrizhető byref visszatéréseket támogatja: dup, ldsflda, ldflda, ldelema, callés unbox.

Példák

Az alábbi parancs metaadat-ellenőrzési ellenőrzéseket végez, az MSIL típusú biztonsági ellenőrzés pedig a szerelvényben myAssembly.exeimplementált módszereket ellenőrzi.

peverify myAssembly.exe /md /il

A fenti kérés sikeres végrehajtása után Peverify.exe a következő üzenetet jeleníti meg.

All classes and methods in myAssembly.exe Verified

Az alábbi parancs metaadat-ellenőrzési ellenőrzéseket végez, az MSIL típusú biztonsági ellenőrzés pedig a szerelvényben myAssembly.exeimplementált módszereket ellenőrzi. Az eszköz megjeleníti az ellenőrzések végrehajtásához szükséges időt.

peverify myAssembly.exe /md /il /clock

A fenti kérés sikeres végrehajtása után Peverify.exe a következő üzenetet jeleníti meg.

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

Az alábbi parancs metaadat-ellenőrzési ellenőrzéseket végez, az MSIL típusú biztonsági ellenőrzés pedig a szerelvényben myAssembly.exeimplementált módszereket ellenőrzi. Peverify.exe azonban leáll, amikor eléri a 100-ra vonatkozó maximális hibaszámot. Az eszköz figyelmen kívül hagyja a megadott hibakódokat is.

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

A következő parancs ugyanazt az eredményt hozza létre, mint a fenti példa, de megadja a válaszfájlban ignoreErrors.rspfigyelmen kívül hagyandó hibakódokat.

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

A válaszfájl tartalmazhat a hibakódok vesszővel tagolt listáját.

0x12345678, 0xABCD1234

Másik lehetőségként a válaszfájl soronként egy hibakóddal formázható.

0x12345678
0xABCD1234

Lásd még