Compartir a través de


Instrumentar y volver a firmar ensamblados

Si desea recopilar datos de cobertura de código durante una prueba de código en un ensamblado, Visual Studio debe instrumentar primero ese ensamblado. El proceso de instrumentación agrega código al ensamblado que genera datos de cobertura de código.

Sin embargo, si el ensamblado que se va a probar estuviese firmado con un nombre seguro, la modificación del código que produce la instrumentación invalida la firma. Por tanto, Visual Studio intenta volver a firmar el ensamblado automáticamente justo después del paso de instrumentación.

Si el proceso de volver a firmar el ensamblado se realiza correctamente, la ejecución de pruebas finalizará y generará resultados correctamente. Si la firma no se realiza correctamente, se generará un error como el siguiente:

Strong name verification failed for the instrumented assembly 'SignedLibrary, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1696e096eba75082'. Please make sure that the correct key file for re-signing after instrumentation is specified in the test settings.

Para solucionarlo, pruebe con el siguiente procedimiento:

  • Volver a firmar el ensamblado. Si tiene el archivo de clave que se utilizó para firmar el ensamblado, puede suministrarlo para que Visual Studio pueda volver a firmar el ensamblado automáticamente.

  • Deshabilitar la comprobación de la firma. Puede deshabilitar la comprobación de la firma en el equipo en el que se va a probar el ensamblado. Esta acción sólo se aplicará a los ensamblados que especifique.

Volver a firmar el ensamblado

En las configuraciones de pruebas del adaptador de datos de diagnóstico para la cobertura de código, puede especificar un archivo de clave para volver a firmar los binarios después de la instrumentación. Si está probando varios ensamblados que ya se han firmado, Visual Studio intentará volver a firmar todos los ensamblados con nombre seguro que se firmaron con el archivo de clave especificado.

Al especificar un archivo de clave, se agrega un paso para volver a firmar al proceso de ejecución de pruebas. Visual Studio determinará automáticamente qué ensamblados se deben volver a firmar usando el archivo de clave especificado. Se volverán a firmar todos los ensamblados que se puedan volver a firmar utilizando ese archivo de clave.

Nota

Los ensamblados sólo se pueden volver a firmar utilizando un archivo de clave, no un nombre de clave.

El proceso de volver a firmar los ensamblados se produce de manera incompleta o no se produce en los casos siguientes:

  • Si el archivo de clave no está disponible, Visual Studio no puede volver a firmar el ensamblado. Puede volver a generar el archivo de clave y, después, intentar firmar de nuevo el ensamblado.

  • Si el archivo de clave está protegido mediante contraseña, se producirá un error al volver a firmar el ensamblado.

  • Sólo se admite un archivo de clave por cada ejecución de prueba. Tomemos como ejemplo una ejecución de pruebas que hace referencia a varios ensamblados. Algunos de estos ensamblados se firmaron utilizando un archivo de clave mientras que para otros se utilizó otro diferente. Dado que puede seleccionar solo uno archivo de claves, no volverán a firmar los ensamblados que necesitan el otro archivo de claves y tendrá que hacerse manualmente. Si algunos ensamblados quedan sin signo, se genera un error en el nivel de ejecución de la prueba. En este caso, se podría deshabilitar la comprobación de la firma, como se describe en Deshabilitar la comprobación de la firma.

Deshabilitar la comprobación de la firma

Si se produce un error al volver a firmar, puede elegir deshabilitar la comprobación de la firma de este ensamblado durante el tiempo que dure la ejecución de pruebas. Por ejemplo, se producirá un error al volver a firmar si el archivo de clave correcto no está disponible. Para deshabilitar la comprobación de la firma, use la Sn.exe (Herramienta de nombre seguro) con la opción –Vr, como se indica aquí:

SN -Vr <nombre del ensamblado>

De esta manera se deshabilita la comprobación del nombre seguro, sólo para el ensamblado especificado, en el equipo en el que se ejecuta el comando.

Este procedimiento sólo es posible si posee los permisos necesarios.

Una vez finalizada la ejecución de prueba, vuelva a habilitar la comprobación de la firma. Para ello, use el comando SN.exe con la opción –Vu, como se muestra aquí:

SN -Vu <nombre del ensamblado>

Nota

Es importante que vuelva a habilitar la comprobación de la firma. Si la comprobación de la firma permanece deshabilitada, puede provocar problemas de seguridad.

Vea también

Tareas

Cómo: Configurar la cobertura de código mediante la configuración de pruebas para pruebas automatizadas

Cómo: Obtener datos de cobertura de código

Cómo: Firmar un ensamblado con un nombre seguro

Referencia

Sn.exe (Herramienta de nombre seguro)

Conceptos

Ensamblados con nombre seguro

Otros recursos

Crear una configuración de pruebas para ejecutar pruebas automatizadas desde Visual Studio

Crear una configuración de pruebas para pruebas automatizadas como parte de un plan de pruebas