Firma di un assembly con un nome sicuro

Per firmare un assembly con un nome sicuro, sono disponibili due soluzioni:

  • Utilizzo dell'Assembly Linker (Al.exe) fornito dall'SDK di .NET Framework.
  • Utilizzo degli attributi dell'assembly per inserire le informazioni relative al nome sicuro nel codice. È possibile utilizzare sia l'attributo AssemblyKeyFileAttribute che l'attributo AssemblyKeyNameAttribute, a seconda della posizione in cui è salvato il file della chiave da utilizzare.

Per firmare un assembly con un nome sicuro, è necessario disporre di una coppia di chiavi crittografiche. Per ulteriori informazioni sulla creazione di una coppia di chiavi, vedere Creazione di una coppia di chiavi.

Per creare e firmare un assembly con un nome sicuro utilizzando Assembly Linker

  • Al prompt dei comandi, digitare il comando seguente:

    al /out:<nome assembly> <nome modulo> /keyfile:<nome file>

    In questo comando, nome assembly corrisponde al nome dell'assembly da firmare con un nome sicuro, nome modulo rappresenta il nome del modulo di codice utilizzato per creare l'assembly e nome file corrisponde al nome del contenitore o del file contenente la coppia di chiavi.

L'esempio seguente consente di firmare l'assembly MyAssembly.dll con un nome sicuro utilizzando il file della chiave sgKey.snk.

al /out:MyAssembly.dll MyModule.netmodule /keyfile:sgKey.snk

Per firmare un assembly con un nome sicuro utilizzando gli attributi

  • In un modulo di codice aggiungere l'attributo AssemblyKeyFileAttribute o AssemblyKeyNameAttribute, specificando il nome del file o del contenitore contenente la coppia di chiavi da utilizzare durante la firma dell'assembly con un nome sicuro.

Nel seguente esempio di codice viene utilizzato l'attributo AssemblyKeyFileAttribute con un file della chiave denominato sgKey.snk.

<Assembly:AssemblyKeyFileAttribute("sgKey.snk")>
[C#]
[assembly:AssemblyKeyFileAttribute(@"..\..\sgKey.snk")]

È inoltre possibile ritardare la firma di un assembly durante la compilazione. Per ulteriori informazioni, vedere Ritardo della firma di un assembly.

Quando firma un assembly con un nome sicuro, Assembly Linker (Al.exe) cerca il file della chiave relativo alla directory corrente e alla directory di output. Se si utilizzano i compilatori della riga di comando, è sufficiente copiare la chiave nella directory corrente contenente i moduli di codice.

Vedere anche

Creazione e utilizzo degli assembly con nome sicuro | Creazione di una coppia di chiavi | Ritardo della firma di un assembly