Ieri sera stavo facendo alcuni lavori e mi è capitato di
dover firmare un assembly AppLogin.dll che sto creando per un'applicazione. Ho
utilizzato il buon vecchio tool per generare il file .snk contenente la key pair
obbligatoria per questa operazione. Ricordo la sintassi:
sn -k C:\Key.snk
Una volta generato il file, l'ho copiato in una directory più intelligente e
a questo punto sono andato nel file AssemblyInfo.cs della mia
soluzione per usare l'attributo AssemblyKeyFile nel modo
seguente:
[assembly: AssemblyKeyFile("D:\\Documenti\\Visual Studio 2005\\Key.snk")]
Ricompilando, ho ottenuto il warning Use command line
option '/keyfile' or appropriate project settings instead of
'AssemblyKeyFile'. Mi sono rifiutato, data
l'ora tarda in cui mi trovavo davanti al PC, di andare alla commandline per
firmare l'assembly. La soluzione consiste nell'andare nelle proprietà del
progetto, spostarsi nella sezione Signing e specificare
nella finestra di dialogo qual'è il file che vogliamo utilizzare per lo strong
name.
In questo momento, indichiamo in due posti diversi la key pair che viene
utilizzata per la firma: una nell'attributo AssemblyKeyFile, e l'altra nelle
proprietà del progetto. VS2005 ci avvisa che quest'ultima
fa un override di quella indicata nel sorgente. E' corretto dire che
attivare questa opzione non fa nient'altro che compilare il progetto usando
l'opzione /keyfile del compilatore? Ho cercato su MSDN, ho
trovato diverse pagine partendo dai links qui sotto su questo argomento, ma
nessuna di queste mi ha chiarito veramente questo dubbio:
How to: Sign an Assembly (Visual Studio)
How to: Sign an Assembly with a Strong Name
Signing Page, Project Designer
powered by IMHO 1.2