2012-02-21 12 views
7

Come parte del nostro sistema di compilazione, usiamo signtool.exe con un certificato per firmare i nostri binari una volta che sono stati compilati. Di tanto in tanto (è difficile dire quando colpirà), la firma non riesce:SignTool.exe non riesce ad eseguire il backup con codice di uscita 1

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

Secondo MSDN, un codice di uscita di 1 significa che c'è stato un errore la firma del file. Posso verificare che il file non sia stato firmato.

Ho anche notato che occasionalmente, la parte timestamp scade con un messaggio di errore diverso, anche se il file viene ancora firmato (senza il timestamp).

Come è possibile risolvere e correggere questi errori di firma apparentemente casuali e incoerenti?

+0

Ho la stessa esperienza: signtool occasionalmente fallisce durante il timestamping. Non sembra esserci altra soluzione oltre al segnaposto di riesecuzione. –

+0

@ EugeneMayevski'EldoSCorp alcune persone riferiscono di aggiornare i loro certificati di Windows XP e alcune altre cose strane del genere. Voglio una risposta definitiva, poiché una build fallita è molto seria per me. Ma temo che tu abbia ragione. – ashes999

+1

Supponi che il tuo server di data e ora sia completamente irraggiungibile (cavo di rete scollegato, ecc.). Come potrebbe signtool o altro strumento per lo stesso scopo essere in grado di affrontare questo? Naturalmente, vorrei che il firmtool fosse più tollerante ai guasti e abbia cercato di eseguire nuovamente il timestamping, ma in ogni caso è necessario essere pronti per eventuali errori di timestamping. –

risposta

5

Sospetto fortemente che una connessione non riuscita al server Timestamp sia responsabile di guasti occasionali. Forse controlli il registro degli eventi di sistema per le connessioni perse al momento in questione.

+0

Se questo è il caso, come dovrei rettificare questo? Non controllo il server timestamp. – ashes999

+0

Potrebbe essere quasi tutto. Controlla la tua infrastruttura. Una volta abbiamo avuto un problema con un cavo di rete difettoso. È stato facile. Potrebbe essere tempo di inattività locale a causa di manutenzione. Potrebbe essere un problema con il tuo provider Internet. Il mio consiglio (proprio come ha spiegato EldoS Corp di Eugene Mayevski): Implementare un meccanismo per i tentativi. Non lasciare che la firma degli assembly sia una parte critica del tuo processo. –

+0

Puoi modificare la tua risposta per dire che il processo di compilazione dovrebbe essere più robusto? Questo è quello che ho finito per fare. – ashes999

2

Ho avuto lo stesso problema. Succede perché MS antimalware process MsMpEng.exe controlla il file binario e non consente a nessuno di accedervi. Per risolvere il problema, ho creato il binario sul disco RAM e ha funzionato.

2

Ho appena in questo problema, su Windows 8.1, quindi non è il problema dei certificati di root di Windows XP che alcuni citano.

Ho trovato che il problema era causato dal fatto che anche l'exe firmato era in esecuzione.

Se si esegue signtool dal prompt cmd e cercare di firmarlo si otterrà un messaggio di testo utile che ti dice ciò che è sbagliato (molto meglio rispetto al codice di ritorno 1 da CreateProcess().

fermato la corsa processo ed è stato in grado di firmare OK

1

Nel mio caso, il file .pfx nella soluzione era vecchio. Fino a quando qualcuno mi ha detto di sostituire il file del certificato con il nuovo, valido, ho continuato a ottenere "Fails con errore Codice 1 "

Significato, assicurarsi che il file del certificato sia valido e non scaduto.

Problemi correlati