Assembly con nome sicuro (firma degli assembly) (C++/CLI)
In questo argomento viene illustrato come firmare l'assembly, spesso definito come assegnare un nome sicuro all'assembly.
Osservazioni:
Quando si usa Visual C++, usare le opzioni del linker per firmare l'assembly per evitare problemi correlati agli attributi CLR 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 ritardare la firma dell'assembly e dopo l'esecuzione di 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 Specifica di 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 opzioni del linker seguenti 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 altre informazioni sugli assembly sicuri, vedere Creazione e uso di assembly con nome sicuro.