2010-10-26 9 views
18

consigo este error al intentar construir un proyecto utilizando Team Build (MSBuild) en TFS 2010:asambleas de firmar con los archivos de PFX en MSBuild, Generar equipo, y TFS


C: \ Windows \ Microsoft .NET \ Framework \ v4.0.30319 \ Microsoft.Common.targets (1970):
No se puede importar el siguiente archivo de clave: CCC.pfx.
El archivo de clave puede estar protegido por contraseña.

Para corregir esto, intenta importar el certificado de nuevo o instalar manualmente el certificado al CSP nombre seguro con el siguiente nombre de contenedor de claves: VS_KEY_C00C673BBB353901

C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Microsoft.Common.targets (1970):
Se canceló la importación del archivo de clave "CCC.pfx".


Todo se basa en OK en Visual Studio 2010. El conjunto está firmado con un archivo PFX. Por lo general, en Visual Studio que se le pide la contraseña la primera vez que construimos, pero luego nunca más ...

He intentado correr:

sn -i companyname.pfx VS_KEY_3E185446540E7F7A 

como otras respuestas como se sugiere en cuestión de desbordamiento de pila Cannot import the keyfile 'blah.pfx' - error 'The keyfile may be password protected'. He intentado importar en la tienda de certificados personales como se sugiere en la pregunta de desbordamiento de pila Using MSBuild to sign ClickOnce or assembly results in error MSB3321. Pero todo fue en vano, sigue siendo el mismo error.

¿Cómo lo hago? ¿Tengo que agregar de alguna manera el certificado a la cuenta de Windows bajo la cual se ejecuta el servicio de compilación o algo así?

Alternativamente, ¿cómo realizo la construcción en Team Build sin utilizar la firma? Solo quiero comprobar que compila y ejecuta las pruebas unitarias. No necesito firmar para eso.

Respuesta

5

Lo que finalmente lo solucionó fue hacer que la cuenta bajo la cual el servicio TFS Build ejecute un administrador en la máquina local.

No sé si alguna de las otras cosas que estaba tratando antes también debe hacerse para que funcione. Pero antes de que fuera administrador, no funcionó después de que se convirtió en administrador.

+0

¡Gracias por tu propia respuesta! ¡Funcionó para mí también! –

+1

Esto también solucionó mi problema con TeamCity. Simplemente cambié el usuario de inicio de sesión para el servicio de agente de compilación. Me gustaría saber cómo instalar estos certificados para que estén disponibles para la cuenta del sistema local ... – Keith

8

Debe adaptar this answer a su caso específico. Algo así como:

sn -i companyname.pfx VS_KEY_C00C673BBB353901 
+4

Como puede ver en mi publicación original, ya lo he intentado sin éxito – MikeG

8

Lo que hice no es tan elegante, pero funciona: inicie la sesión como el usuario que ejecuta msbuild en la construcción de la máquina, de forma manual invocar msbuild, y luego escribir la contraseña cuando se le solicite. Ahora se guardará en el almacén de certificados de ese usuario, y ahora las compilaciones se pueden ejecutar sin supervisión.

+2

FWIW, ~ 2 años más tarde, todavía utilizando la misma imagen del servidor de compilación, y ni siquiera he pensado en esto desde entonces. – gregmac

+2

¿Podría describir cómo ejecutó msbuild? Recibí el comando del registro de compilación de TFS y eliminé el modificador/noconsolelogger y lo ejecuté en una consola. Cuando lo ejecuté nunca me pidieron una contraseña y simplemente falla con el mismo mensaje de error. – jcmcbeth

+0

@gregmac Tengo la misma pregunta. ¿Cómo haces que msbuild solicite una contraseña? – jnm2

1

Me estaba dando el mismo error, y después de leer su comentario de "administrador", acabo de ejecutar VS Command Prompt como administrador y ahora funciona bien.

0

me he enfrentado problema similar

Escenario 1: Mientras que la construcción del proyecto en el sistema local

En mi caso yo estaba consiguiendo el error de firma de manifiesto una vez descargado el proyecto de TFS y construirlo.

Para evitar este problema que se pulsa sobre el proyecto ==> Propiedades ==> Firma entonces sin control "Muestra de los manifiestos de ClickOnce"

O

puede hacer clic Seleccionar desde el almacén y seleccione su ID de inicio de sesión desde el cuadro de diálogo abrir.

O

puede instalar el archivo PFX manualmente y luego haga clic en el botón Más opciones para instalar los certificados.

Escenario 2: - Error manifiesto durante la construcción

aquí para resolver este error que primero se hace clic Seleccionar de botón de almacenamiento y seleccione mi ID de inicio de sesión desde el cuadro de diálogo .A continuación, cometí ese proyecto en la primera TFS y luego ejecuta la compilación.

Cuestiones relacionadas