Compartir a través de


La instrumentación de un ensamblado firmado produciría un mensaje de advertencia: se ha firmado XXX.DLL/XXX.EXE. La instrumentación interrumpirá la comprobación

Este artículo le ayuda a resolver el problema en el que se ha firmado el mensaje de error XXX.DLL/XXX.EXE. La instrumentación interrumpirá la comprobación.

Se aplica a: Microsoft Visual Studio
Número de KB original: 2200180

Síntomas

En Visual Studio, recibirá un mensaje de advertencia similar al siguiente:

XXX.DLL/XXX.EXE se ha firmado. La instrumentación interrumpirá la comprobación. Desactive la comprobación de este ensamblado o vuelva a iniciarla en el paso posterior a la instrumentación. Presione Aceptar para intentar generar perfiles de todos modos.

Si presiona Aceptar en el cuadro de mensaje, el generador de perfiles se ejecutaría sin embargo, no habrá datos recopilados después de instrumentar el ensamblado.

Puede crear cualquier tipo de aplicación basada en .NET (consola, Winforms, proyecto de prueba, etc.) y firmar el ensamblado. A continuación, use el Asistente para el rendimiento para instrumentar el ensamblado firmado. Consulte el documento de MSDN: Cómo: Usar el Asistente para rendimiento.

Se produce un error similar al siguiente:

Microsoft Visual Studio
<Se ha firmado el nombre> del ensamblado.  La instrumentación interrumpirá la comprobación.  Desactive la comprobación de este ensamblado o vuelva a iniciarla en el paso posterior a la instrumentación. Presione Aceptar para intentar generar perfiles de todos modos.
Aceptar cancelar

Causa

Una de las razones por las que esto sucede es que el generador de perfiles de Visual Studio interrumpiría el nombre seguro de los ensamblados firmados al intentar instrumentar el ensamblado. Provocaría una excepción cuando el generador de perfiles intenta asociarse al ensamblado firmado a medida que se interrumpe el nombre seguro del ensamblado firmado. Esto provocaría una excepción interna y el generador de perfiles no podría recopilar los registros de la instrumentación.

Solución

Hay dos métodos para resolver este problema.

  • Método 1

    Vuelva a firmar el ensamblado en el paso posterior a la instrumentación. Para escribir el comando re-sign para el ensamblado, haga lo siguiente:

    1. Haga lo siguiente para escribir el comando en el comando post-instrument:

      • Para especificar comandos posteriores a la instrumentación para todos los binarios de una sesión de rendimiento, seleccione el nodo de la sesión de rendimiento en Explorador de rendimiento y después haga clic con el botón derecho y seleccione Propiedades.

      • Para especificar comandos posteriores a la instrumentación de un archivo binario específico, haga clic con el botón derecho en el nombre del binario en la lista Destinos de la sesión de rendimiento y, a continuación, seleccione Propiedades.

    2. En las Páginas de propiedades, haga clic en Instrumentación.

    3. Escriba el comando en el cuadro de texto Línea de comandos en Eventos posteriores a la instrumentación.

    4. Haga clic en Aceptar.

    Los pasos anteriores se documentan en MSDN. Puede consultar el documento en línea de MSDN sobre: Cómo: Especificar comandos previos y posteriores a la instrumentación.

    En el tipo de línea de comandos post-instrument, el comando : "<path>\sn.exe" -Ra <assembly_path> <strong_name_file>.

    Por ejemplo: C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\sn.exe" -Ra "..Bin\Debug\TestApp.EXE" "..\..\ TestApp.EXE.snk.

  • Método 2

    Registre el ensamblado para la comprobación omitiendo: sn -Vr <assembly>. Puede hacerlo en el evento posterior a la compilación del ensamblado o fuera del IDE, y necesita privilegios de administrador para hacerlo.