Peverify.exe (Herramienta PEVerify)Peverify.exe (PEVerify Tool)

La herramienta PEVerify ayuda a los desarrolladores que generan lenguaje intermedio de Microsoft (MSIL) (como autores de compiladores, desarrolladores de motores de scripts, etc.) a determinar si el código MSIL y los metadatos asociados satisfacen los requisitos de seguridad de tipos.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. Algunos compiladores solo generan código con seguridad de tipos comprobable si se evita el uso de determinadas construcciones de lenguaje.Some compilers generate verifiably type-safe code only if you avoid using certain language constructs. Si, como desarrollador, está utilizando un compilador con estas características, puede que desee comprobar que no ha puesto en peligro la seguridad de tipos del código.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. Para ello, ejecute la herramienta PEVerify en los archivos con el fin de comprobar el lenguaje MSIL y los metadatos.In this situation, you can run the PEVerify tool on your files to check the MSIL and metadata.

Esta herramienta se instala automáticamente con Visual Studio.This tool is automatically installed with Visual Studio. Para ejecutar la herramienta, use Símbolo del sistema para desarrolladores de Visual Studio (o Símbolo del sistema de Visual Studio en Windows 7).To run the tool, use the Developer Command Prompt for Visual Studio (or the Visual Studio Command Prompt in Windows 7). Para más información, consulte Símbolos del sistema.For more information, see Command Prompts.

En el símbolo del sistema, escriba lo siguiente:At the command prompt, type the following:

SintaxisSyntax

peverify filename [options]  

ParámetrosParameters

ArgumentoArgument DESCRIPCIÓNDescription
filenamefilename Archivo portable ejecutable (PE) para el que se comprueban el lenguaje MSIL y los metadatos.The portable executable (PE) file for which to check the MSIL and metadata.
OpciónOption DESCRIPCIÓNDescription
/break= maxErrorCount/break= maxErrorCount Anula la comprobación si se generan tantos errores como indica maxErrorCount.Aborts verification after maxErrorCount errors.

Este parámetro no es compatible con .NET Framework versión 2.0 o posterior.This parameter is not supported in .NET Framework version 2.0 or later.
/clock/clock Mide los siguientes tiempos de comprobación en milisegundos y los notifica:Measures and reports the following verification times in milliseconds:

MD Val. cycleMD Val. cycle
Ciclo de validación de metadatosMetadata validation cycle

MD Val. pureMD Val. pure
Validación pura de metadatosMetadata validation pure

IL Ver. cycleIL Ver. cycle
Ciclo de comprobación del Lenguaje intermedio de Microsoft (MSIL)Microsoft intermediate language (MSIL) verification cycle

IL Ver pureIL Ver pure
Comprobación pura de MSILMSIL verification pure

Los valores de MD Val. cycle e IL Ver. cycle incluyen el tiempo requerido para realizar los procedimientos necesarios de inicio y de cierre.The MD Val. cycle and IL Ver. cycle times include the time required to perform necessary startup and shutdown procedures. Los valores de MD Val. pure e IL Ver pure reflejan el tiempo requerido únicamente para realizar la validación o comprobación.The MD Val. pure and IL Ver pure times reflect the time required to perform the validation or verification only.
/help/help Muestra las opciones y la sintaxis de los comandos para la herramienta.Displays command syntax and options for the tool.
/hresult/hresult Muestra los códigos de error en formato hexadecimal.Displays error codes in hexadecimal format.
/ignore= hex.code [, hex.code]/ignore= hex.code [, hex.code] Omite los códigos de error especificados.Ignores the specified error codes.
/ignore=@ responseFile/ignore=@ responseFile Omite los códigos de error enumerados en el archivo de respuesta especificado.Ignores the error codes listed in the specified response file.
/il/il Realiza comprobaciones de la seguridad de tipos de MSIL en los métodos implementados en el ensamblado especificado por filename.Performs MSIL type safety verification checks for methods implemented in the assembly specified by filename. La herramienta devuelve descripciones detalladas de cada uno de los problemas encontrados, salvo que se especifique la opción /quiet.The tool returns detailed descriptions for each problem found unless you specify the /quiet option.
/md/md Realiza comprobaciones de validación de metadatos en el ensamblado especificado por filename.Performs metadata validation checks on the assembly specified by filename. Para ello recorre la estructura completa de metadatos en el archivo y genera un informe de todos los problemas de validación encontrados.This walks the full metadata structure within the file and reports all validation problems encountered.
/nologo/nologo Suprime la presentación de la versión del producto y de la información de copyright.Suppresses the display of product version and copyright information.
/nosymbols/nosymbols En .NET Framework versión 2.0, se suprimen los números de línea para la compatibilidad con versiones anteriores.In the .NET Framework version 2.0, suppresses line numbers for backward compatibility.
/quiet/quiet Especifica el modo silencioso; suprime la salida de los informes relativos a problemas de comprobación.Specifies quiet mode; suppresses output of the verification problem reports. No obstante, Peverify.exe notifica si el archivo tiene seguridad de tipos, aunque no proporciona información sobre los problemas que impiden comprobar la seguridad de tipos.Peverify.exe still reports whether the file is type safe, but does not report information on problems preventing type safety verification.
/transparent Comprueba solo los métodos transparentes.Verify only the transparent methods.
/unique/unique Omite la repetición de códigos de error.Ignores repeating error codes.
/verbose/verbose En .NET Framework versión 2.0, se muestra información adicional en los mensajes de comprobación de MSIL.In the .NET Framework version 2.0, displays additional information in MSIL verification messages.
/?/? Muestra las opciones y la sintaxis de los comandos para la herramienta.Displays command syntax and options for the tool.

ComentariosRemarks

Common Language Runtime se basa en la ejecución con seguridad de tipos del código de la aplicación para ayudar a imponer mecanismos de aislamiento y seguridad.The common language runtime relies on the type-safe execution of application code to help enforce security and isolation mechanisms. Normalmente, el código en el que no se puede comprobar la seguridad de tipos no se puede ejecutar, aunque puede establecer una directiva de seguridad para permitir la ejecución de código de confianza pero que no se puede comprobar.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.

Si no se especifican las opciones /md o /il, Peverify.exe realiza ambos tipos de comprobaciones.If neither the /md nor /il options are specified, Peverify.exe performs both types of checks. Primero realiza comprobaciones de tipo /md.Peverify.exe performs /md checks first. Si no hay errores, realiza comprobaciones de tipo /il.If there are no errors, /il checks are made. Si especifica ambas opciones ( /md e /il), se realizarán comprobaciones de tipo /il aunque existan errores en los metadatos.If you specify both /md and /il, /il checks are made even if there are errors in the metadata. Así, si no hay ningún error de metadatos, peverify filename es equivalente a peverify filename /md /il.Thus, if there are no metadata errors, peverify filename is equivalent to peverify filename /md /il.

Peverify.exe realiza comprobaciones exhaustivas de MSIL basándose en el análisis del flujo de datos y en una lista que contiene centenares de reglas sobre metadatos válidos.Peverify.exe performs comprehensive MSIL verification checks based on dataflow analysis plus a list of several hundred rules on valid metadata. Para obtener información detallada sobre las comprobaciones que realiza Peverify.exe, vea las secciones sobre especificaciones para la validación de metadatos y para el conjunto de instrucciones de MSIL en la carpeta Tools Developers Guide de Windows 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 SDK.

Tenga en cuenta que .NET Framework versión 2.0 o posterior admite devoluciones de los datos byref que se puedan comprobar especificadas mediante las siguientes instrucciones de MSIL: dup, ldsflda, ldflda, ldelema, call y 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.

EjemplosExamples

El comando siguiente realiza comprobaciones de validación de metadatos y comprobaciones de seguridad de tipos de MSIL en los métodos implementados en el ensamblado 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  

Después de ejecutar la solicitud anterior correctamente, Peverify.exe muestra el mensaje siguiente.Upon successful completion of the above request, Peverify.exe displays the following message.

All classes and methods in myAssembly.exe Verified  

El comando siguiente realiza comprobaciones de validación de metadatos y comprobaciones de seguridad de tipos de MSIL en los métodos implementados en el ensamblado myAssembly.exe.The following command performs metadata validation checks and MSIL type safety verification checks for methods implemented in the assembly myAssembly.exe. La herramienta muestra el tiempo necesario para ejecutar estas comprobaciones.The tool displays the time required to perform these checks.

peverify myAssembly.exe /md /il /clock  

Después de ejecutar la solicitud anterior correctamente, Peverify.exe muestra el mensaje siguiente.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  

El comando siguiente realiza comprobaciones de validación de metadatos y comprobaciones de seguridad de tipos de MSIL en los métodos implementados en el ensamblado myAssembly.exe.The following command performs metadata validation checks and MSIL type safety verification checks for methods implemented in the assembly myAssembly.exe. No obstante, Peverify.exe se detiene cuando llega al número máximo de errores (100).Peverify.exe stops, however, when it reaches the maximum error count of 100. La herramienta también omite los códigos de error especificados.The tool also ignores the specified error codes.

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

El comando siguiente genera el mismo resultado que el ejemplo anterior, pero especifica los códigos de error que se omiten en el archivo de respuesta 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  

El archivo de respuesta puede contener una lista de códigos de error separados por comas.The response file can contain a comma-separated list of error codes.

0x12345678, 0xABCD1234  

El archivo de respuesta también puede tener un formato que incluya un código de error por línea.Alternatively, the response file can be formatted with one error code per line.

0x12345678  
0xABCD1234  

Vea tambiénSee also