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, obtendría un mensaje de advertencia similar al siguiente:

XXX.DLL/XXX.EXE se ha firmado. La instrumentación interrumpirá la verificación. Desactive la comprobación de este ensamblado o vuelva a firmarla 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, pero no habrá datos recopilados después de instrumentar el ensamblado.

Cree cualquier tipo de aplicación basada en .NET (consola, Winformsproyecto de prueba, etc.) y firme el ensamblado. A continuación, use el Asistente para 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
<Assembly Name> se ha firmado. La instrumentación interrumpirá la verificación. Desactive la comprobación de este ensamblado o vuelva a firmarla 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 rompería el nombre seguro de los ensamblados firmados al intentar instrumentar el ensamblado. Daría lugar a una excepción cuando el generador de perfiles intenta asociarse al ensamblado firmado, ya que el nombre seguro del ensamblado firmado está roto. Esto daría lugar a una excepción interna y el generador de perfiles no podría recopilar los registros para 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 de volver a firmar para el ensamblado, haga lo siguiente:

    1. Haga lo siguiente para escribir el comando en el comando posterior al instrumento:

      • Para especificar comandos posteriores al instrumento para todos los archivos binarios de una sesión de rendimiento, seleccione el nodo de sesión de rendimiento en el Explorador de rendimiento y, a continuación, haga clic con el botón derecho y seleccione Propiedades.

      • Para especificar comandos posteriores al instrumento para un 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 al instrumento.

    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 posterior al instrumento, 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.