visual studio 2010 - Impossibile importare il file di chiavi 'blah.pfx'-errore 'Il file di chiavi potrebbe essere protetto da password'




visual-studio-2010 visual-studio (15)

Abbiamo appena aggiornato i nostri progetti Visual Studio 2008 a Visual Studio 2010. Tutti i nostri assembly sono stati firmati con un certificato di firma del codice di Verisign . Dall'aggiornamento otteniamo continuamente il seguente errore:

Impossibile importare il seguente file chiave: companyname.pfx. Il file chiave può essere protetto da password. Per correggere ciò, provare a importare nuovamente il certificato o installare manualmente il certificato nel CSP Strong Name con il seguente nome del contenitore di chiavi: VS_KEY_3E185446540E7F7A

Questo accade su alcune macchine sviluppatrici e non su altre. Alcuni metodi utilizzati per risolvere ciò che ha funzionato alcune volte includono:

  • Reinstallazione del file chiave da Windows Explorer (fare clic con il pulsante destro del mouse sul file PFX e fare clic su Installa)
  • L'installazione di Visual Studio 2010 su una macchina nuova per la prima volta richiede la password la prima volta che si apre il progetto e quindi funziona. Sulle macchine aggiornate da Visual Studio 2008, non si ottiene questa opzione.

Ho provato a utilizzare l'utilità SN.EXE (Strong Name Tool) per registrare la chiave con Strong Name CSP come suggerisce il messaggio di errore, ma ogni volta che eseguo lo strumento con qualsiasi opzione che utilizza la versione fornita con Visual Studio 2010, SN .EXE elenca solo i suoi argomenti da riga di comando invece di fare qualsiasi cosa. Ciò accade indipendentemente da quali argomenti fornisco.

Perché sta succedendo questo e quali sono i passaggi chiari per risolverlo? Sto per rinunciare alle installazioni ClickOnce e alla firma del codice Microsoft.


Come autore originale del lavoro attorno al bug report di connessione, ci sono DUE varianti di questo messaggio (che ho scoperto in seguito)

Per una variante si usa sn.exe (di solito se si sta facendo una forte denominazione) per importare la chiave nell'archivio dei nomi forte.

L'altra variante per cui si utilizza certmgr da importare è quando si sta codificando per operazioni come la distribuzione click-once (si noti che è possibile utilizzare lo stesso certificato per entrambi gli scopi).

Spero che questo ti aiuti.


Come soluzione alternativa, ho provato a eseguire Visual Studio 2010 come amministratore e ha funzionato per me.

Spero che questo possa essere d'aiuto.


FYI

Ho usato lo sn.exe con -p flag nel file PFX del segno di codice ufficiale (acquistato come firma del codice) come in basso che ha creato il file SNK e in Visual Studio 2013 che il file SNK stato sfogliato per essere utilizzato.

  • Che ha risolto il problema con la password.

Ma il problema è che continua a dire: "Il file chiave * .. SNK non contiene una coppia di chiavi pubblica / privata."


Ho avuto lo stesso problema dopo aver spostato la mia installazione di Windows su un SSD . Nessuna delle altre soluzioni ha funzionato per me.

La mia soluzione era di aprire il file di progetto in Notepad e rimuovere tutti i riferimenti alle chiavi PFX. Una volta salvato il file, apri la soluzione in Visual Studio. Vai a progetto -> Proprietà -> Firma. Non dovresti vedere alcuna chiave elencata nella casella combinata 'scegli il nome della chiave del nome sicuro'. Nella casella combinata, selezionare la chiave, selezionarla e ora è possibile creare il progetto.


Ho avuto un problema simile, ma dopo aver selezionato il file pfx in un "ComboBox di file con nome sicuro" e aver digitato la password, ho ancora ricevuto un errore simile (senza la parte del nome del contenitore):

Impossibile importare il seguente file chiave: companyname.pfx. Il file chiave può essere protetto da password. Per correggere ciò, provare a importare nuovamente il certificato o installare manualmente il certificato

Inoltre, il pannello delle informazioni sul certificato "Firma il ClickOnce manifesti" non è stato popolato.

Ho fatto "Seleziona da File ..." sul mio pfx, e ha risolto il problema.


Ho parlato troppo presto! La ricostruzione ha riportato gli errori in gioco ...

Ho trovato questo funziona - tasto destro del mouse in Solution Explorer ed escludilo dal progetto. Fai clic su Mostra tutti i file , fai clic con il pulsante destro del mouse e includilo nuovamente nel progetto. Ora annulla le modifiche in sospeso ...

Per qualche ragione questo lo ha risolto per me ed è stato relativamente indolore!


Ho risolto questo problema per me stesso modificando la seguente riga nel file .csproj del progetto Visual Studio:

Questo ha gettato l'errore "impossibile importare":

<PropertyGroup>
<SignManifests>true</SignManifests>
</PropertyGroup>

Cambiando il valore in falso, l'errore si è risolto.


Ho scoperto che in alcuni casi dovresti provare a eliminare questa chiave prima di installarla. Quindi, fai quanto segue:

  1. sn -d VS_XXXX
  2. sn -i mykey.pfx VS_XXX

Il mio problema era che TFS Build Controller era in esecuzione come servizio di rete e per qualche motivo non capivo perché i certificati del servizio Host di Visual Studio Build non venivano utilizzati. Ho cambiato l'identità del servizio Visual Studio Build in qualcosa di più gestibile, mi sono assicurato che avesse diritti sul server TFS e ho aggiunto manualmente i certificati utilizzando MMC.

Il problema era anche che MSBuild non può aggiungere i certificati protetti da password allo store.


La selezione del file chiave in una casella combinata e l'immissione della password ci aiutano in questo.

Ma è necessario fare ogni volta che cambia il file chiave e sembra che non sia OK.



Ok, questo ha funzionato per me. Aprire la vecchia soluzione / progetto come amministratore in Visual Studio 2010 e aprire la soluzione o il progetto nuovi o copiati. Come amministratore, rimuovere il file pfk copiato nella nuova soluzione / progetto di Visual Studio 2010 e andare alle proprietà del progetto e deselezionarlo.

Con entrambi i progetti aperti, copia incolla su quello nuovo. Vai alle proprietà del progetto e seleziona Costruisci. Ho aperto e chiuso Visual Studio e anche dopo aver rimosso dal nuovo progetto lo abbiamo creato prima di copiarlo dal vecchio progetto e selezionarlo. Ho ricevuto l'errore all'inizio di questo post per primo quando ho copiato il progetto e ho provato a crearlo.


Questo ha risolto il mio problema: apri il tuo progetto VS.

Fare doppio clic su Package.appxmanifest

Vai alla scheda Packaging

fai clic su Scegli certificato

fare clic su configura certificato

seleziona dal file e usa example.pfx quell'unità o qualsiasi altra cosa creata


Tutti i metodi descritti qui non mi hanno aiutato. Ma quando ho cancellato il file * .pfx dal mio progetto e l'ho aggiunto di nuovo alla firma dell'assembly, ho costruito il mio progetto senza errori! Non so spiegare perché. Ma ha funzionato per me.


Stavo correndo anche in questo problema. Sono stato in grado di risolvere il problema eseguendo
sn -i <KeyFile> <ContainerName> ( installa la coppia di chiavi in ​​un contenitore denominato ).

sn solito viene installato come parte di un SDK di Windows. Ad esempio C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools\sn.exe . Molto probabilmente questa posizione non si trova nel percorso di ricerca per il tuo ambiente standard. Tuttavia, il "Prompt dei comandi dello sviluppatore" installato da Visual Studio aggiunge informazioni aggiuntive che in genere includono la posizione corretta.

Basato sul tuo post che sarebbe simile

sn -i companyname.pfx VS_KEY_3E185446540E7F7A

Questo deve essere eseguito dalla posizione del file PFX, se hai la soluzione caricata in VS 2010 puoi semplicemente fare clic destro sul file pfx da solution explorer e scegliere Apri prompt dei comandi che avvierà lo strumento prompt .net 2010 cmd in la directory corretta.

Prima di eseguire questo comando sn, ho reinstallato il file pfx facendo clic con il tasto destro del mouse su di esso e scegliendo Installa che comunque non funzionava. Solo qualcosa da notare come potrebbe essere la combinazione di entrambi che ha fornito la soluzione.

Spero che questo aiuti a risolvere il tuo problema.





pfx