Peverify.exe (strumento PEVerify)Peverify.exe (PEVerify Tool)

Lo strumento PEVerify aiuta gli sviluppatori che utilizzano il linguaggio MSIL (Microsoft Intermediate Language) per creare compilatori, motori di script e così via, a determinare se il codice MSIL creato e i metadati associati soddisfano i requisiti di indipendenza dai tipi.The PEVerify tool helps developers who generate Microsoft intermediate language (MSIL) (such as compiler writers, script engine developers, and so on) to determine whether their MSIL code and associated metadata meet type safety requirements. Alcuni compilatori generano codice di cui è verificabile l'indipendenza dai tipi solo se si evita di utilizzare determinati costrutti del linguaggio.Some compilers generate verifiably type-safe code only if you avoid using certain language constructs. Se, in qualità di sviluppatore, si utilizza un compilatore di questo tipo, sarà opportuno verificare di non aver compromesso l'indipendenza dai tipi del codice.If, as a developer, you are using such a compiler, you may want to verify that you have not compromised the type safety of your code. In questa situazione è possibile eseguire lo strumento PEVerify sui file per controllare il codice MSIL e i metadati.In this situation, you can run the PEVerify tool on your files to check the MSIL and metadata.

Viene installato automaticamente con Visual Studio.This tool is automatically installed with Visual Studio. Per eseguire lo strumento, usare il prompt dei comandi per sviluppatori o il prompt dei comandi di Visual Studio in Windows 7.To run the tool, use the Developer Command Prompt (or the Visual Studio Command Prompt in Windows 7). Per altre informazioni, vedere Prompt dei comandi.For more information, see Command Prompts.

Al prompt dei comandi digitare quanto segue:At the command prompt, type the following:

SintassiSyntax

peverify filename [options]  

ParametriParameters

ArgomentoArgument DescrizioneDescription
filenamefilename File eseguibile di tipo PE per il quale controllare il codice MSIL e i metadati.The portable executable (PE) file for which to check the MSIL and metadata.
OpzioneOption DescrizioneDescription
/break= maxErrorCount/break= maxErrorCount Interrompe la verifica dopo un numero di errori pari a maxErrorCount.Aborts verification after maxErrorCount errors.

Questo parametro non è supportato in .NET Framework 2.0 o versione successiva.This parameter is not supported in .NET Framework version 2.0 or later.
/clock/clock Misura e segnala i seguenti tempi di verifica in millisecondi:Measures and reports the following verification times in milliseconds:

MD Val. cycleMD Val. cycle
Ciclo di convalida dei metadatiMetadata validation cycle

MD Val. pureMD Val. pure
Pure di convalida dei metadatiMetadata validation pure

IL Ver. cycleIL Ver. cycle
Ciclo di verifica di MSIL (Microsoft Intermediate Language)Microsoft intermediate language (MSIL) verification cycle

IL Ver pureIL Ver pure
Pure di verifica MSILMSIL verification pure

I tempi MD Val. cycle e IL Ver. cycle includono il tempo richiesto per l'esecuzione delle procedure di avvio e chiusura necessarie.The MD Val. cycle and IL Ver. cycle times include the time required to perform necessary startup and shutdown procedures. I tempi MD Val. pure e IL Ver pure corrispondono al tempo richiesto solo per l'esecuzione della convalida o della verifica.The MD Val. pure and IL Ver pure times reflect the time required to perform the validation or verification only.
/help/help Visualizza la sintassi e le opzioni di comando dello strumento.Displays command syntax and options for the tool.
/hresult/hresult Visualizza i codici di errore in formato esadecimale.Displays error codes in hexadecimal format.
/ignore= hex.code [, hex.code]/ignore= hex.code [, hex.code] Ignora i codici di errore specificati.Ignores the specified error codes.
/ignore=@ responseFile/ignore=@ responseFile Ignora i codici di errore elencati nel file di risposta specificato.Ignores the error codes listed in the specified response file.
/il/il Esegue i controlli di verifica dell'indipendenza dai tipi del codice MSIL per i metodi implementati nell'assembly specificato da filename.Performs MSIL type safety verification checks for methods implemented in the assembly specified by filename. Vengono restituite descrizioni dettagliate per ogni problema rilevato, a meno che non si specifichi l'opzione /quiet.The tool returns detailed descriptions for each problem found unless you specify the /quiet option.
/md/md Esegue controlli di convalida dei metadati sull'assembly specificato da filename.Performs metadata validation checks on the assembly specified by filename. Esamina l'intera struttura dei metadati nel file e segnala tutti i problemi di convalida rilevati.This walks the full metadata structure within the file and reports all validation problems encountered.
/nologo/nologo Evita la visualizzazione delle informazioni sul copyright e sulla versione del prodotto.Suppresses the display of product version and copyright information.
/nosymbols/nosymbols In .NET Framework versione 2.0 evita la visualizzazione dei numeri di riga per compatibilità con le versioni precedenti.In the .NET Framework version 2.0, suppresses line numbers for backward compatibility.
/quiet/quiet Specifica la modalità non interattiva. Evita la visualizzazione dell'output dei report dei problemi di verifica.Specifies quiet mode; suppresses output of the verification problem reports. Viene comunque indicato se il file è indipendente dai tipi, ma non vengono fornite informazioni sui problemi che impediscono la verifica dell'indipendenza dai tipi.Peverify.exe still reports whether the file is type safe, but does not report information on problems preventing type safety verification.
/transparent Verifica solo i metodi trasparenti.Verify only the transparent methods.
/unique/unique Ignora i codici di errore ripetuti.Ignores repeating error codes.
/verbose/verbose In .NET Framework versione 2.0 determina la visualizzazione di informazioni aggiuntive nei messaggi di verifica MSIL.In the .NET Framework version 2.0, displays additional information in MSIL verification messages.
/?/? Visualizza la sintassi e le opzioni di comando dello strumento.Displays command syntax and options for the tool.

NoteRemarks

Common Language Runtime si basa sull'esecuzione indipendente dai tipi del codice dell'applicazione per applicare meccanismi di sicurezza e isolamento.The common language runtime relies on the type-safe execution of application code to help enforce security and isolation mechanisms. In genere il codice di cui non è verificabile l'indipendenza dai tipi non può essere eseguito, anche se è possibile impostare criteri di sicurezza per consentire l'esecuzione del codice attendibile ma non verificabile.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.

Se non sono state specificate né l'opzione /md né l'opzione /il verranno eseguiti entrambi i tipi di controllo,If neither the /md nor /il options are specified, Peverify.exe performs both types of checks. iniziando dai controlli /md.Peverify.exe performs /md checks first. Se non sono presenti errori vengono effettuati i controlli /il.If there are no errors, /il checks are made. Se si specifica sia /md sia /il i controlli /il vengono effettuati anche in presenza di errori nei metadati.If you specify both /md and /il, /il checks are made even if there are errors in the metadata. Pertanto in assenza di errori nei metadati, peverify filename è equivalente a peverify filename /md /il.Thus, if there are no metadata errors, peverify filename is equivalent to peverify filename /md /il.

Mediante Peverify.exe vengono eseguiti controlli di verifica completi del codice MSIL sulla base dell'analisi del flusso di dati nonché di un elenco di alcune centinaia di regole sui metadati validi.Peverify.exe performs comprehensive MSIL verification checks based on dataflow analysis plus a list of several hundred rules on valid metadata. Per informazioni dettagliate sui controlli eseguiti da Peverify.exe, vedere le specifiche di convalida dei metadati e le specifiche del set di istruzioni MSIL nella cartella "Tools Developers Guide" di Windows Software Development Kit (SDK)Windows Software Development Kit (SDK).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 Software Development Kit (SDK)Windows Software Development Kit (SDK).

Si noti che in .NET Framework 2.0 o versione successiva sono supportate restituzioni byref verificabili specificate mediante le seguenti istruzioni MSIL: dup, ldsflda, ldflda, ldelema, call e unbox.Note that the .NET Framework version 2.0 or later supports verifiable byref returns specified using the following MSIL instructions: dup, ldsflda, ldflda, ldelema, call and unbox.

EsempiExamples

Il comando che segue esegue controlli di convalida dei metadati e controlli di verifica dell'indipendenza dai tipi del codice MSIL per i metodi implementati nell'assembly myAssembly.exe.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  

Al completamento della richiesta precedente, viene visualizzato il messaggio che segue.Upon successful completion of the above request, Peverify.exe displays the following message.

All classes and methods in myAssembly.exe Verified  

Il comando che segue esegue controlli di convalida dei metadati e controlli di verifica dell'indipendenza dai tipi del codice MSIL per i metodi implementati nell'assembly myAssembly.exe.The following command performs metadata validation checks and MSIL type safety verification checks for methods implemented in the assembly myAssembly.exe. Viene visualizzato il tempo necessario per l'esecuzione di questi controlli.The tool displays the time required to perform these checks.

peverify myAssembly.exe /md /il /clock  

Al completamento della richiesta precedente, viene visualizzato il messaggio che segue.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  

Il comando che segue esegue controlli di convalida dei metadati e controlli di verifica dell'indipendenza dai tipi del codice MSIL per i metodi implementati nell'assembly myAssembly.exe.The following command performs metadata validation checks and MSIL type safety verification checks for methods implemented in the assembly myAssembly.exe. Tuttavia, Peverify.exe si arresta quando raggiunge il conteggio di errori massimo di 100.Peverify.exe stops, however, when it reaches the maximum error count of 100. Lo strumento ignora inoltre i codici di errore specificati.The tool also ignores the specified error codes.

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

Il comando che segue produce lo stesso risultato dell'esempio precedente, ma specifica i codici di errore da ignorare nel file di risposta ignoreErrors.rsp.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  

Il file di risposta può contenere un elenco di codici di errore separati da virgole.The response file can contain a comma-separated list of error codes.

0x12345678, 0xABCD1234  

In alternativa, il file di risposta può essere formattato con un codice di errore per riga.Alternatively, the response file can be formatted with one error code per line.

0x12345678  
0xABCD1234  

Vedere ancheSee Also

StrumentiTools
Scrittura di codice indipendente dai tipi verificabileWriting Verifiably Type-Safe Code
Indipendenza dai tipi e sicurezzaType Safety and Security
Prompt dei comandiCommand Prompts