Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
In questo argomento viene discussa la modalità per firmare l'assembly, spesso definita come assegnare un nome forte all'assembly.
Osservazioni:
Quando si utilizza Visual C++, usare le opzioni del linker per firmare l'assembly e evitare problemi correlati agli attributi CLR specifici per la firma dell'assembly:
I motivi per cui non si usano gli attributi includono il fatto che il nome della chiave è visibile nei metadati dell'assembly, che può essere un rischio per la sicurezza se il nome del file include informazioni riservate. Inoltre, il processo di compilazione usato dall'ambiente di sviluppo Visual C++ invaliderà la chiave con cui l'assembly è firmato se si usano attributi CLR per assegnare un nome sicuro a un assembly e quindi eseguire uno strumento di post-elaborazione come mt.exe nell'assembly.
Se si esegue la compilazione nella riga di comando, usare le opzioni del linker per firmare l'assembly e quindi eseguire uno strumento di post-elaborazione (ad esempio mt.exe), sarà necessario firmare nuovamente l'assembly con sn.exe. In alternativa, è possibile compilare e firmare con ritardo l'assembly e, dopo aver eseguito gli strumenti di post-elaborazione, completare la firma.
Se si usano gli attributi di firma durante la compilazione nell'ambiente di sviluppo, è possibile firmare correttamente l'assembly chiamando in modo esplicito sn.exe (Sn.exe (Strumento nome sicuro) in un evento di post-compilazione. Per altre informazioni, vedere Specificare gli eventi di compilazione. I tempi di compilazione possono essere inferiori se si usano attributi e un evento di post-compilazione, rispetto all'uso di opzioni del linker.
Le seguenti opzioni del linker supportano la firma degli assembly:
/KEYFILE (specifica una chiave o una coppia di chiavi per firmare un assembly)
/KEYCONTAINER (specifica un contenitore di chiavi per firmare un assembly)
Per ulteriori informazioni sugli assembly con nome sicuro, vedere Creazione e utilizzo di assembly con nome sicuro.