Peverify.exe (PEVerify-Tool)
Aktualisiert: April 2011
Mit dem PEVerify-Tool können Entwickler, die MSIL (Microsoft Intermediate Language) generieren (Compilerwriter, Skriptmodulentwickler usw.), bestimmen, ob der MSIL-Code und die zugeordneten Metadaten den Anforderungen an die Typsicherheit entsprechen. Einige Compiler generieren nur dann überprüfbar typsicheren Code, wenn bestimmte Sprachkonstrukte nicht verwendet werden. Wenn Sie als Entwickler einen solchen Compiler verwenden, sollten Sie u. U. prüfen, ob die Typsicherheit des Codes eingeschränkt wurde. Hierzu können Sie das PEVerify-Tool für die Dateien ausführen und damit MSIL und Metadaten überprüfen.
Dieses Tool wird automatisch mit Visual Studio und mit dem Windows SDK installiert. Um das Tool auszuführen, empfiehlt es sich, dass Sie die Visual Studio-Eingabeaufforderung oder Windows SDK-Eingabeaufforderung (CMD-Shell) verwenden. Mit diesen Hilfsprogrammen können Sie das Tool problemlos ausführen, ohne in den Installationsordner zu navigieren. Weitere Informationen finden Sie unter Visual Studio- und Windows SDK-Eingabeaufforderungen.
Wenn Visual Studio auf dem Computer installiert ist: Klicken Sie auf der Taskleiste auf Start, All Programs, Visual Studio und Visual Studio Tools, und klicken Sie dann auf Visual Studio Command Prompt.
– oder –
Wenn das Windows SDK auf Ihrem Computer installiert ist: Klicken Sie auf der Taskleiste auf Start, All Programs, klicken Sie auf den Ordner für das Windows SDK, und klicken anschließend auf Command Prompt (oder CMD Shell).
Geben Sie an der Eingabeaufforderung Folgendes ein:
peverify filename [options]
Parameter
Argument |
Beschreibungen |
---|---|
filename |
Die PE-Datei (Portable Executable), deren MSIL und Metadaten überprüft werden sollen. |
Option |
Beschreibungen |
---|---|
/break=maxErrorCount |
Bricht die Überprüfung nach maxErrorCount Fehlern ab. Dieser Parameter wird in .NET Framework, Version 2.0 oder höher, nicht unterstützt. |
/clock |
Erfasst und berichtet die folgenden Überprüfungszeiten in Millisekunden:
Die MD Val. cycle- und IL Ver. cycle-Zeiten umfassen die Zeit, die erforderlich ist, um die erforderlichen Prozeduren zum Starten und Herunterfahren auszuführen. Die MD Val. pure- und IL Ver pure-Zeiten umfassen die Zeit, die erforderlich ist, um nur die Validierung oder Überprüfung auszuführen. |
/help |
Zeigt Befehlssyntax und Optionen für das Tool an. |
/hresult |
Zeigt Fehlercodes im hexadezimalen Format an. |
/ignore=hex.code [, hex.code] |
Ignoriert die angegebenen Fehlercodes. |
/ignore=@responseFile |
Ignoriert die in der angegebenen Antwortdatei aufgelisteten Fehlercodes. |
/il |
Führt Überprüfungen der MSIL-Typsicherheit für Methoden durch, die in der durch filename angegebenen Assembly implementiert sind. Das Tool gibt eine detaillierte Beschreibung aller gefundenen Probleme zurück, sofern Sie nicht die /quiet-Option angeben. |
/md |
Führt Validierungen von Metadaten in der durch filename angegebenen Assembly aus. Dabei wird die gesamte Metadatenstruktur in der Datei durchlaufen und über alle Validierungsprobleme berichtet. |
/nologo |
Unterdrückt die Anzeige der Produktversion sowie von Copyrightinformationen. |
/nosymbols |
Unterdrückt in .NET Framework, Version 2.0, Zeilennummern, um Abwärtskompatibilität zu gewährleisten. |
/quiet |
Gibt den stillen Modus an. Hierbei wird die Ausgabe von Berichten über die während der Überprüfung gefundenen Probleme unterdrückt. Peverify.exe berichtet weiterhin über die Typsicherheit der Datei, es werden jedoch keine Informationen zu Problemen ausgegeben, die die Überprüfung der Typsicherheit verhindern. |
/transparent |
Überprüfen Sie nur die transparenten Methoden. |
/unique |
Ignoriert wiederholt auftretende Fehlercodes. |
/verbose |
Zeigt in .NET Framework, Version 2.0, zusätzliche Informationen in MSIL-Überprüfungsmeldungen an. |
/? |
Zeigt Befehlssyntax und Optionen für das Tool an. |
Hinweise
Die Common Language Runtime erfordert die typsichere Ausführung von Anwendungscode, um Sicherheits- und Isolierungsmechanismen zu erzwingen. Normalerweise kann Code, der nicht überprüfbar typsicher ist, nicht ausgeführt werden. Sie können jedoch die Sicherheitsrichtlinie so festlegen, dass vertrauenswürdiger, aber nicht überprüfbarer Code ausgeführt wird.
Wenn weder die /md-Option noch die /il-Option angegeben wurde, führt Peverify.exe beide Überprüfungen durch. Peverify.exe führt zuerst /md-Überprüfungen aus. Wenn keine Fehler auftreten, werden /il-Überprüfungen durchgeführt. Wenn Sie /md und /il angeben, werden auch /il-Überprüfungen durchgeführt, wenn in den Metadaten Fehler vorhanden sind. Daher stimmen peverify filename und peverify filename /md /il überein, wenn die Metadaten nicht fehlerhaft sind.
Peverify.exe führt umfangreiche MSIL-Überprüfungen anhand der Datenflussanalyse sowie einer Liste mit mehreren hundert Regeln für die Gültigkeit von Metadaten durch. Detaillierte Informationen zu den von Peverify.exe ausgeführten Überprüfungen finden Sie unter "Metadata Validation Specification" und "MSIL Instruction Set Specification" im Windows Software Development Kit (SDK)-Ordner "Tools Developers Guide".
Beachten Sie, dass .NET Framework, Version 2.0 oder höher, überprüfbare byref-Rückgaben unterstützt, die unter Verwendung der folgenden MSIL-Anweisungen angegeben werden: dup, ldsflda, ldflda, ldelema, call und unbox.
Beispiele
Der folgende Befehl validiert Metadaten und verifiziert die MSIL-Typsicherheit von Methoden, die in der Assembly myAssembly.exe implementiert sind.
peverify myAssembly.exe /md /il
Wenn diese Anforderung erfolgreich ausgeführt wurde, zeigt Peverify.exe die folgende Meldung an.
All classes and methods in myAssembly.exe Verified
Der folgende Befehl validiert Metadaten und verifiziert die MSIL-Typsicherheit von Methoden, die in der Assembly myAssembly.exe implementiert sind. Das Tool zeigt an, wie viel Zeit zur Durchführung dieser Überprüfungen erforderlich ist.
peverify myAssembly.exe /md /il /clock
Wenn diese Anforderung erfolgreich ausgeführt wurde, zeigt Peverify.exe die folgende Meldung an.
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
Der folgende Befehl validiert Metadaten und verifiziert die MSIL-Typsicherheit von Methoden, die in der Assembly myAssembly.exe implementiert sind. "Peverify.exe" wird jedoch beendet, wenn es die maximale Fehleranzahl von 100 erreicht. Das Tool ignoriert auch die angegebenen Fehlercodes.
peverify myAssembly.exe /break=100 /ignore=0x12345678,0xABCD1234
Der folgende Befehl führt zum gleichen Ergebnis wie das vorherige Beispiel, nur werden hier die in der Antwortdatei ignoreErrors.rsp zu ignorierenden Fehlercodes angegeben.
peverify myAssembly.exe /break=100 /ignore@ignoreErrors.rsp
Die Antwortdatei kann eine durch Trennzeichen getrennte Liste von Fehlercodes enthalten.
0x12345678, 0xABCD1234
Wahlweise kann die Antwortdatei auch mit einem Fehlercode pro Zeile formatiert werden.
0x12345678
0xABCD1234
Siehe auch
Referenz
Visual Studio- und Windows SDK-Eingabeaufforderungen
Konzepte
Schreiben von überprüfbar typsicherem Code
Weitere Ressourcen
Änderungsprotokoll
Datum |
Versionsgeschichte |
Grund |
---|---|---|
April 2011 |
Hinzugefügte Informationen zur Verwendung der Visual Studio- und Windows SDK-Eingabeaufforderungen. |
Informationsergänzung. |