Peverify.exe (PEVerify-Tool)Peverify.exe (PEVerify tool)
Mit dem PEVerify-Tool können Entwickler, die MSIL (Microsoft Intermediate Language) generieren (wie Compilerentwickler und Skript-Engine-Entwickler), herausfinden, ob ihr MSIL-Code und die zugeordneten Metadaten den Anforderungen an die Typsicherheit entsprechen.The PEVerify tool helps developers who generate Microsoft intermediate language (MSIL) (such as compiler writers and script engine developers) to determine whether their MSIL code and associated metadata meet type safety requirements. Einige Compiler generieren nur dann überprüfbar typsicheren Code, wenn bestimmte Sprachkonstrukte nicht verwendet werden.Some compilers generate verifiably type-safe code only if you avoid using certain language constructs. Wenn Sie einen solchen Compiler verwenden, sollten Sie unter Umständen prüfen, ob die Typsicherheit des Codes beeinträchtigt wurde.If you're using such a compiler, you may want to verify that you have not compromised the type safety of your code. Sie können das PEVerify-Tool für die Dateien ausführen und damit die MSIL und Metadaten überprüfen.You can run the PEVerify tool on your files to check the MSIL and metadata.
Dieses Tool wird automatisch mit Visual Studio installiert.This tool is automatically installed with Visual Studio. Verwenden Sie die Developer-Eingabeaufforderung für Visual Studio (oder die Visual Studio-Eingabeaufforderung in Windows 7), um das Tool auszuführen.To run the tool, use the Developer Command Prompt for Visual Studio (or the Visual Studio Command Prompt in Windows 7). Weitere Informationen finden Sie unter Eingabeaufforderungen.For more information, see Command Prompts.
SyntaxSyntax
peverify filename [options]
ParameterParameters
ArgumentArgument | BeschreibungDescription |
---|---|
filenamefilename | Die portierbare ausführbare Datei (Portable Executable, PE), deren MSIL und Metadaten überprüft werden sollen.The portable executable (PE) file for which to check the MSIL and metadata. |
OptionOption | BeschreibungDescription |
---|---|
/break= maxErrorCount/break= maxErrorCount | Bricht die Überprüfung nach maxErrorCount-Fehlern ab.Aborts verification after maxErrorCount errors. Dieser Parameter wird in .NET Framework, Version 2.0 oder höher, nicht unterstützt.This parameter is not supported in .NET Framework version 2.0 or later. |
/clock/clock | Erfasst und meldet die folgenden Überprüfungszeiten in Millisekunden:Measures and reports the following verification times in milliseconds: MD Val. cycleMD Val. cycle Validierungszyklus der MetadatenMetadata validation cycle MD Val. pureMD Val. pure Reine MetadatenvalidierungMetadata validation pure IL Ver. cycleIL Ver. cycle Überprüfungszyklus der Microsoft Intermediate Language (MSIL)Microsoft intermediate language (MSIL) verification cycle IL Ver pureIL Ver pure Reine MSIL-ÜberprüfungMSIL verification pure Die Zeiten MD Val. cycle und IL Ver. cycle umfassen die Zeit, die erforderlich ist, um die notwendigen Prozeduren zum Starten und Herunterfahren auszuführen.The MD Val. cycle and IL Ver. cycle times include the time required to perform necessary startup and shutdown procedures. Die Zeiten MD Val. pure und IL Ver pure umfassen die Zeit, die erforderlich ist, um nur die Validierung oder Überprüfung auszuführen.The MD Val. pure and IL Ver pure times reflect the time required to perform the validation or verification only. |
/help/help | Zeigt Befehlssyntax und Optionen für das Tool an.Displays command syntax and options for the tool. |
/hresult/hresult | Zeigt Fehlercodes im Hexadezimalformat an.Displays error codes in hexadecimal format. |
/ignore= hex.code [, hex.code]/ignore= hex.code [, hex.code] | Ignoriert die angegebenen Fehlercodes.Ignores the specified error codes. |
/ignore=@ responseFile/ignore=@ responseFile | Ignoriert die in der angegebenen Antwortdatei aufgelisteten Fehlercodes.Ignores the error codes listed in the specified response file. |
/il/il | Führt Überprüfungen der MSIL-Typsicherheit für Methoden durch, die in der durch dateiname angegebenen Assembly implementiert sind.Performs MSIL type safety verification checks for methods implemented in the assembly specified by filename. Das Tool gibt eine detaillierte Beschreibung aller gefundenen Probleme zurück, sofern Sie nicht die /quiet-Option angeben.The tool returns detailed descriptions for each problem found unless you specify the /quiet option. |
/md/md | Führt Validierungen von Metadaten in der durch Dateiname angegebenen Assembly aus.Performs metadata validation checks on the assembly specified by filename. Bei dieser Option wird die gesamte Metadatenstruktur in der Datei durchlaufen und über alle gefundenen Validierungsprobleme berichtet.This option walks the full metadata structure within the file and reports all validation problems encountered. |
/nologo/nologo | Unterdrückt die Anzeige der Produktversion sowie von Copyrightinformationen.Suppresses the display of product version and copyright information. |
/nosymbols/nosymbols | Unterdrückt in .NET Framework, Version 2.0, Zeilennummern, um Abwärtskompatibilität zu gewährleisten.In the .NET Framework version 2.0, suppresses line numbers for backward compatibility. |
/quiet/quiet | Gibt den stillen Modus an. Hierbei wird die Ausgabe von Berichten über die während der Überprüfung gefundenen Probleme unterdrückt.Specifies quiet mode; suppresses output of the verification problem reports. "Peverify.exe" meldet weiterhin, ob die Datei typsicher ist, es werden jedoch keine Informationen zu Problemen ausgegeben, die die Überprüfung der Typsicherheit verhindern.Peverify.exe still reports whether the file is type safe, but does not report information on problems preventing type safety verification. |
/transparent |
Überprüfen Sie nur die transparenten Methoden.Verify only the transparent methods. |
/unique/unique | Ignoriert wiederholt auftretende Fehlercodes.Ignores repeating error codes. |
/verbose/verbose | Zeigt in .NET Framework, Version 2.0, zusätzliche Informationen in MSIL-Überprüfungsmeldungen an.In the .NET Framework version 2.0, displays additional information in MSIL verification messages. |
/?/? | Zeigt Befehlssyntax und Optionen für das Tool an.Displays command syntax and options for the tool. |
HinweiseRemarks
Die Common Language Runtime erfordert die typsichere Ausführung von Anwendungscode, um Sicherheits- und Isolierungsmechanismen zu erzwingen.The common language runtime relies on the type-safe execution of application code to help enforce security and isolation mechanisms. 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.Normally, code that is not verifiably type safe cannot run, although you can set security policy to allow the execution of trusted but unverifiable code.
Wenn weder die /md-Option noch die /il-Option angegeben wurde, führt „peverify.exe“ beide Überprüfungen durch.If neither the /md nor /il options are specified, Peverify.exe performs both types of checks. „everify.exe“ führt zuerst /md-Überprüfungen aus.Peverify.exe performs /md checks first. Wenn keine Fehler auftreten, werden /il-Überprüfungen durchgeführt.If there are no errors, /il checks are made. Wenn Sie /md und /il angeben, werden auch /il-Überprüfungen durchgeführt, wenn in den Metadaten Fehler vorhanden sind.If you specify both /md and /il, /il checks are made even if there are errors in the metadata. Daher stimmt peverify filename mit peverify filename /md /il überein, wenn die Metadaten nicht fehlerhaft sind.Thus, if there are no metadata errors, peverify filename is equivalent to peverify filename /md /il.
"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.Peverify.exe performs comprehensive MSIL verification checks based on dataflow analysis plus a list of several hundred rules on valid metadata. Detaillierte Informationen zu den von „Peverify.exe“ ausgeführten Überprüfungen finden Sie im Windows SDK im Ordner „Tools Developers Guide“ unter „Metadata Validation Specification“ und „MSIL Instruction Set Specification“.For detailed information on the checks Peverify.exe performs, see the "Metadata Validation Specification" and the "MSIL Instruction Set Specification" in the Tools Developers Guide folder in the Windows SDK.
.NET Framework, Version 2.0 oder höher, unterstützt überprüfbare byref
-Rückgaben, die unter Verwendung der folgenden MSIL-Anweisungen angegeben werden: dup
, ldsflda
, ldflda
, ldelema
, call
und unbox
..NET Framework version 2.0 or later supports verifiable byref
returns specified using the following MSIL instructions: dup
, ldsflda
, ldflda
, ldelema
, call
, and unbox
.
BeispieleExamples
Der folgende Befehl validiert Metadaten und verifiziert die MSIL-Typsicherheit von Methoden, die in der myAssembly.exe
-Assembly implementiert sind.The following command performs metadata validation checks and MSIL type safety verification checks for methods implemented in the assembly myAssembly.exe
.
peverify myAssembly.exe /md /il
Wenn diese Anforderung erfolgreich ausgeführt wurde, zeigt "Peverify.exe" die folgende Meldung an.Upon successful completion of the above request, Peverify.exe displays the following message.
All classes and methods in myAssembly.exe Verified
Der folgende Befehl validiert Metadaten und verifiziert die MSIL-Typsicherheit von Methoden, die in der myAssembly.exe
-Assembly implementiert sind.The following command performs metadata validation checks and MSIL type safety verification checks for methods implemented in the assembly myAssembly.exe
. Das Tool zeigt an, wie viel Zeit zur Durchführung dieser Überprüfungen erforderlich ist.The tool displays the time required to perform these checks.
peverify myAssembly.exe /md /il /clock
Wenn diese Anforderung erfolgreich ausgeführt wurde, zeigt "Peverify.exe" die folgende Meldung an.Upon successful completion of the above request, Peverify.exe displays the following message.
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 myAssembly.exe
-Assembly implementiert sind.The following command performs metadata validation checks and MSIL type safety verification checks for methods implemented in the assembly myAssembly.exe
. "Peverify.exe" wird jedoch beendet, wenn es die maximale Fehleranzahl von 100 erreicht.Peverify.exe stops, however, when it reaches the maximum error count of 100. Das Tool ignoriert auch die angegebenen Fehlercodes.The tool also ignores the specified error codes.
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.The following command produces the same result as the above previous example, but specifies the error codes to ignore in the response file ignoreErrors.rsp
.
peverify myAssembly.exe /break=100 /ignore@ignoreErrors.rsp
Die Antwortdatei kann eine durch Trennzeichen getrennte Liste von Fehlercodes enthalten.The response file can contain a comma-separated list of error codes.
0x12345678, 0xABCD1234
Wahlweise kann die Antwortdatei auch mit einem Fehlercode pro Zeile formatiert werden.Alternatively, the response file can be formatted with one error code per line.
0x12345678
0xABCD1234