2009-05-19 2 views
6

Ho impostato il mio progetto semplice in Visual   Studio   2008 per utilizzare un programma di installazione ClickOnce. Ho specificato che i manifesti ClickOnce devono essere firmati dal file della nostra società. Quando ho impostato questo in Visual Studio ha chiesto la password per il file PFX, che ho fornito volentieri. Tutto funziona correttamente quando creo e pubblico da Visual Studio. Funziona bene anche da MSBuild sulla mia macchina.Utilizzo di MSBuild per firmare i risultati ClickOnce o assembly in errore MSB3321

Tuttavia, quando provo a costruire utilizzando MSBuild sulla nostra macchina di build, ottengo il seguente errore:

ERROR MSB3321 in 
    C:\WINDOWS\Microsoft.NET\Framework\v3.5\Microsoft.Common.targets(1805,7) 
    : Importing key file "ourCertificate.pfx" was canceled (sic). 

Dopo qualche ricerca ho trovato un po 'di informazioni che dice questo è perché io non hanno fornito la password. Ma non riesco a trovare un modo per fornire la password sul computer di costruzione. Ho anche visto suggerimenti per installare Visual Studio e fornire la password una volta all'interno di Visual Studio, dopodiché funzionerà da MSBuild. Ma mi piacerebbe davvero evitare di installare Visual Studio sulla macchina di compilazione.

Ho provato a fare doppio clic sul file PFX per importarlo e inserire la password quando richiesto, ma questo non ha aiutato.

Questa stessa cosa accade se si seleziona "Firma l'assieme" in Visual Studio e si fornisce lo stesso file PFX.

Come posso risolvere questo problema? Esiste un modo manuale di memorizzare la password sul computer di costruzione?

risposta

6

È possibile importare il certificato nell'archivio di Trusted Publisher sul computer di costruzione? (Internet Explorer> Strumenti> Opzioni> Contenuto> Certificati)

Non uso MSBuild per creare distribuzioni; Io uso Mago. Tuttavia, io uso il nostro file .pfx per importare il nostro certificato nel mio negozio Trusted Publisher. Per farlo devo inserire la password. Fatto questo, quando salvi un manifest in Mage non devo più fornire una password. Posso semplicemente selezionare il certificato dal mio negozio.

+1

L'importazione del certificato nel mio negozio Trusted Publisher ha funzionato per me. – Wilka

+0

Oltre a questo ho dovuto usare questa proprietà msbuild per indicare a msbuild di firmare l'applicazione ClickOnce: ** ManifestCertificateThumbprint ** [... questo mi ha aiutato] (http://huntjason.wordpress.com/2009/10/22/publishing-clickonce-applications-to-run-side-by-side-per-different-environments-from-the-command-line-using-nant /) – ms007