2012-02-21 20 views
7

Como parte de nuestro sistema de compilación, usamos signtool.exe con un certificado para firmar nuestros archivos binarios una vez que se han creado. De vez en cuando (que es difícil saber cuándo va a huelga), la firma falla:SignTool.exe produce un error esporádico con el código de salida 1

error MSB3073: The command "C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\bin\signtool.exe" [...] exited with code 1. 

Según el MSDN, un código de salida de 1 significa que hubo un error al firmar el archivo. Puedo verificar que el archivo no se haya firmado.

También he notado que, de vez en cuando, la parte de la marca de tiempo finaliza con un mensaje de error diferente, aunque el archivo todavía se firma (sin la marca de tiempo).

¿Cómo puedo solucionar y corregir estas fallas de firmas aparentemente aleatorias e inconsistentes?

+0

Tengo la misma experiencia: signtool ocasionalmente falla durante la marca de tiempo. Parece que no hay otra solución que no sea volver a ejecutar signtool. –

+0

@ EugeneMayevski'EldoSCorp algunas personas informan actualizar sus certificados de Windows XP funciona, y algunas otras cosas raras como esa. Quiero una respuesta definitiva, ya que una compilación fallida es muy seria para mí. Pero me temo que tienes razón. – ashes999

+1

Supongamos que su servidor de sellado de tiempo es completamente inalcanzable (cable de red desenchufado, etc.). ¿Cómo podría signtool u otra herramienta para el mismo propósito poder lidiar con esto? Por supuesto, desearía que el sistema de letreros fuera más tolerante con los fallos y tratara de repetir el sellado una vez más, pero debe estar preparado para una posible falla en la marca de tiempo de todos modos. –

Respuesta

5

Sospecho que una conexión defectuosa al servidor de marca de hora es responsable de fallas ocasionales. Tal vez revise el registro de eventos de su sistema para ver si hay conexiones perdidas en el momento en cuestión.

+0

Si este es el caso, ¿cómo rectificaría esto? No controlo el servidor de la marca de tiempo. – ashes999

+0

Podría ser casi cualquier cosa. Verifica tu infraestructura. Una vez tuvimos un problema con un cable de red defectuoso. Eso fue fácil. Puede ser el tiempo de inactividad local debido al mantenimiento. Podría ser un problema con su proveedor de Internet. Mi consejo (tal como lo explicó Eugene Mayevski 'EldoS Corp): Implementar un mecanismo de reintento. No permita que la firma de ensamblaje sea una parte esencial del proceso. –

+0

¿Puedes editar tu respuesta para mencionar que el proceso de compilación debería ser más robusto? Eso es lo que terminé haciendo. – ashes999

2

Tuve el mismo problema. Sucede porque el proceso antimalware MS MsMpEng.exe comprueba el binario y no permite que nadie acceda a él. Para resolver el problema, construyo binarios en un disco RAM y funcionó.

2

Acabo de hablar de este problema, en Windows 8.1, así que no es el problema de los certificados raíz de Windows XP que algunas personas citan.

Descubrí que el problema se debía a que el .exe que se estaba firmando también se estaba ejecutando.

Si ejecuta signtool desde la línea de cmd y tratar de firmarlo obtendrá un mensaje de texto muy útil que le dice lo que está mal (mucho mejor que el código de retorno 1 de CreateProcess().

detuvo la ejecución proceso y fue capaz de firmar OK.

1

En mi caso, el archivo .pfx en la solución era antiguo. Hasta que alguien me dijo que reemplazara el archivo del certificado por el nuevo y válido, continué obteniendo "Error con el código de salida 1 "error.

Significado, asegúrese de que el archivo del certificado sea válido y no haya expirado.

Cuestiones relacionadas