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  

Siehe auchSee also