Compartilhar via


Assemblies de Nomes Fortes

Um nome forte consiste na identidade assembly— seu nome de texto simples, número de versão, e informações de cultura (se fornecido) — mais uma chave pública e uma assinatura digital.Ela será gerada a partir de um arquivo Assembly (o arquivo que contém o manifesto do Assembly, que por sua vez contém os nomes e hashes de todos os arquivos que compõem o assembly), usando a chave particular correspondente.O Microsoft® Visual Studio® .NET e outras ferramentas de desenvolvimento fornecidas no Windows Software Development Kit (SDK) podem atribuir nomes fortes a um assembly.É esperado que assemblies com o mesmo nome forte sejam idênticos.

Você pode garantir que um nome seja globalmente exclusivo assinando um assembly com um nome forte.Especificamente, nomes fortes satisfazem os requisitos a seguir:

  • Nomes Fortes garantem a exclusividade do nome por confiar em pares de chaves exclusivas.Ninguém pode gerar o mesmo nome de assembly que você pode, porque um Assembly gerado com uma chave particular tem um nome diferente que um Assembly gerado com outra chave particular.

  • Nomes Fortes protegem a linhagem da versão de um Assembly.Um nome forte pode garantir que ninguém pode produzir uma versão posterior do seu Assembly.Os usuários podem ter certeza que a versão do assembly que eles estão carregando vem do mesmo Publisher que criou a versão na qual o aplicativo foi compilado.

  • Nomes Fortes fornecem uma verificação de integridade forte.Passando as verificações de segurança do .NET Framework garante-se que o conteúdo do assembly não foi alterado desde que ele foi criado.Observe, entretanto, que nomes fortes dentro e por eles mesmos não implicam um nível de confiança como fornecido, por exemplo, por uma assinatura digital e suportando certificado.

Quando você referencia um assembly de nome forte, você espera obter certos benefícios, como versão e proteção de nomeação.Se o Assembly de nome forte então referencia um Assembly com um nome simples, que não tem esses benefícios, você perde as vantagens que iria derivar pelo uso de um Assembly de nome forte e reverte para conflitos de DLL.Por essa razão, assemblies de nomes fortes podem apenas referenciar outros assemblies de nomes fortes.

Consulte também

Tarefas

Como: Assinar um assembly com um nome forte

Conceitos

Cache global de assemblies