2009-08-03 15 views

risposta

3

Utilizzare l'utilità Strumento nome sicuro (sn.exe).

+0

sn.exe non può fare questo, becacuse sn.exe solo in grado di dare le dimissioni con Assemblaggio nome storng – guaike

+0

Penso che sn.exe funzioni se l'assembly originale è contrassegnato per essere firmato in seguito. sì? – Cheeso

+2

a Cheeso: Sì, hai ragione, ho trovato un modo: http: //ryanfarley.com/blog/archive/2010/04/23/sign-a-.net-assembly-with-a-strong-name- senza-recompiling.aspx – guaike

12

Se l'assembly originale è contrassegnato per la firma ritardata, è possibile utilizzare lo strumento sn.exe.

Se l'assembly originale non è così marcato, è possibile disassemblarlo con ildasm.exe, quindi riassemblarlo con ilasm.exe e specificare l'argomento/key. Riferimenti: [1][2].

Esempio:

> ildasm /all /out=MYASSEMBLY.il MYASSEMBLY.dll 
> ilasm /dll /key=key.snk MYASSEMBLY.il 
+0

http://msdn.microsoft.com/en-us/library/xc31ft41(VS.71).aspx MSDN ha dichiarato utilizzando: al /out:MyAssembly.dll MyModule.netmodule/keyfile: sgKey. sorteggio. Ma non ci sono riuscito – guaike

+0

Che ne dici di mantenere il file pdb in sincronizzazione? –

+0

Se l'assembly fa riferimento a un'altra DLL che si sta firmando, viene visualizzato un messaggio di errore che indica che non è in grado di trovare la versione senza firma. C'è un modo per aggiornare le firme DLL di riferimento nel file? – Brain2000

-3
You can sign the assembly with the help of VS command prompt. 
Just type the path in VS cmd prompt where your project is physically present. 

In VS cmd 
<your project path>sn -k <name of your project>.snk 

Then go to your project in Solution Explorer -> properties -> Signing -> check checkbox 
-> Browse to the key which is created using VS cmd. 
+0

OP: _ "Non ho codice sorgente per questo." _ – MickyD

8

Un modo semplice per firmare il montaggio 3rd party sta usando la versione GUI di Assembly Strong Name Signer, disponibile qui: http://brutaldev.com/post/2013/10/18/NET-Assembly-Strong-Name-Signer.

il codice sorgente di E 'disponibile su Github. Utilizza Mono.Cecil per il lavoro sporco. Disponibile anche come strumento command line.

Ho trovato il suggerimento ildasm ->ilasm andata e ritorno suggerito in diversi luoghi ingombranti e meglio evitabili.

Non so come Assembly Strong Name Signer gestisce le dipendenze multi-assembly. In caso contrario, il problema e la sua soluzione sono descritti qui (pubblicato nel 2008): http://buffered.io/posts/net-fu-signing-an-unsigned-assembly-without-delay-signing/

+0

molto facile da usare, grazie! – tinamou

2

Dai uno sguardo al mio StrongNameResigner. Si può firmare o di dimissioni di un assieme e tutte le assemblee che dipendono da esso, mentre anche l'aggiornamento tutti i riferimenti utilizzando un comando del genere:

StrongNameResigner.exe -a "c:\temp" -k "key.snk" Foo.Bar 
Problemi correlati