9

Recentemente ho acquistato un certificato di autenticazione autentica da globalsign e sto avendo problemi a firmare i miei file per la distribuzione. Esistono un paio di file .exe generati da un progetto e quindi inseriti in un .msi. Quando firmo i file .exe con il signtool il certificato è valido e funzionano bene. Il problema è che quando costruisco il .msi (usando il progetto di installazione di Visual Studio) i file .exe perdono le loro firme. Quindi posso firmare il .msi dopo che è stato creato, ma i file .exe installati continuano l'intera attività del "publisher sconosciuto". Come posso conservare la firma su questi file per l'installazione sul computer client?Come firmare i file di installazione di un Visual Studio .msi

risposta

11

Visual Studio crea due cartelle in fase di compilazione: obj e bin. Risulta, almeno nel mio caso, l'output verrà sempre copiato dalla cartella obj nella cartella bin. Stavo firmando gli eseguibili nella cartella bin solo per averli sovrascritti e poi impacchettati nel file msi. La firma degli eseguibili nella cartella obj ha risolto il problema.

+0

grazie, questo ha risolto i miei problemi con questo! –

+0

Grazie mille. Avevo visto persone che cercavano di comunicare lo stesso altrove, anche se la tua risposta era molto concisa e facile da leggere. Hai risparmiato ore della mia vita :) – Dawson

0

Sei positivo che il progetto di installazione stia guardando il file binario firmato e non quello senza firma?

Non sto utilizzando molto il generatore msi, ma troverei sorprendente che modificasse i file che esso contiene.

+0

Grazie per avermi indicato nella giusta direzione – Alex

11

È possibile aggiungere i seguenti PostBuiltEvent al progetto di installazione VS (proprietà del progetto):

Windows 8.0:

"C:\Program Files (x86)\Windows Kits\8.0\bin\x86\signtool.exe" sign /a $(BuiltOutputPath) 

di Windows 10:

"C:\Program Files (x86)\Windows Kits\10\bin\x86\signtool.exe" sign /a $(BuiltOutputPath) 

Project properties window

PS : Adatta gli argomenti degli strumenti di firma in base alle tue esigenze facendo riferimento a the documentation

Problemi correlati