Assemblies de nome forte (assinatura de assembly) (C++/CLI)
Este tópico aborda como assinar seu assembly, às vezes citado como dar um nome forte ao assembly.
Comentários
Ao usar o Visual C++, use as opções do vinculador para assinar o assembly e evitar problemas relacionados aos atributos CLR na assinatura de assembly:
Os motivos para não usar os atributos incluem o fato de que o nome da chave está visível nos metadados do assembly, o que pode ser um risco de segurança se o nome do arquivo incluir informações confidenciais. Além disso, o processo de build usado pelo ambiente de desenvolvimento do Visual C++ invalidará a chave com a qual o assembly é assinado se você usar atributos CLR para dar a um assembly um nome forte e, em seguida, executar uma ferramenta pós-processamento, como mt.exe, no assembly.
Se você criar na linha de comando, usar as opções de vinculador para assinar o assembly e executar uma ferramenta pós-processamento (como mt.exe), precisará assinar novamente o assembly com sn.exe. Como alternativa, você pode criar e atrasar a assinatura do assembly e, depois de executar ferramentas pós-processamento, concluir a assinatura.
Se você usar os atributos de assinatura ao criar no ambiente de desenvolvimento, poderá assinar o assembly chamando explicitamente sn.exe (Sn.exe (Strong Name Tool)) em um evento pós-build. Para obter mais informações, confira Especificando eventos de build. Os tempos de build serão menores se você usar atributos e um evento pós-build, em comparação com o uso de opções de vinculador.
As seguintes opções de vinculador dão suporte à assinatura de assembly:
/KEYFILE (especificar chave ou par de chaves para assinar um assembly)
/KEYCONTAINER (especificar um contêiner de chave para assinar um assembly)
Para saber mais sobre assemblies fortes, confira Criando e usando assemblies de nomes fortes.