Assemblies devem ter nomes fortes válido
TypeName |
AssembliesShouldHaveValidStrongNames |
CheckId |
CA2210 |
Category (Categoria) |
Microsoft.Design |
Quebrando alterar |
Não separável |
Causa
Um assembly não está assinado com um nome forte, o nome de alta segurança não pôde ser verificado ou o nome forte não seria válido sem as configurações do registro corrente do computador.
Descrição da regra
Esta regra recupera e verifica o nome forte de um assembly.Uma violação ocorre quando qualquer uma das seguintes opções for verdadeira:
O assembly não tem um nome forte.
O assembly foi alterado depois de entrar.
O assembly é assinado atraso.
O assembly foi assinado incorretamente ou falha ao entrar.
O assembly requer configurações do registro passar a verificação.Por exemplo, a ferramenta nome forte (sn.exe) foi usada para ignorar a verificação do assembly.
O nome forte protege os clientes de carregar um assembly que foi violado inadvertidamente.Assemblies sem nomes de alta segurança não devem ser implantados fora cenários muito limitados.Se você compartilha ou distribuir assemblies que não estão conectados corretamente, o assembly pode ser violado, o Common linguagem tempo de execução não pode carregar o assembly ou o usuário pode ter que desabilitar a verificação no seu computador.Um assembly sem um nome de alta segurança tem das seguintes desvantagens:
Não é possível verificar sua origem.
O common linguagem tempo de execução não é possível avisar os usuários se o Sumário do assembly tiver sido alterado.
Ele não pode ser carregado no cache global de assemblies.
Observe que para carregar e analisar um assembly de assinatura atrasada, você deve desabilitar a verificação de assembly.
Como corrigir violações
Para criar um arquivo de chave
Use um dos seguintes procedimentos:
Use a ferramenta de vinculador de assembly (Al.exe) fornecida pelo .NET Framework SDK (EM INGLÊS).
O .NET Framework V1.0 ou v1.1, use qualquer um de System.Reflection.AssemblyKeyFileAttribute ou System.Reflection.AssemblyKeyNameAttribute atributo.
O .NET Framework 2,0, use o /keyfile ou /keycontainer opção do compilador /KEYFILE (especificar a chave ou par de chaves para assinar um assembly) ou /KEYCONTAINER (especificar um recipiente de chave para assinar um assembly) opção de vinculador em C++).
Para assinar seu assembly com um nome forte no Visual Studio
In Visual Studio, abra sua solução.
In O gerenciador de soluções, clicar com o botão direito do mouse em seu projeto e, em seguida, clique em Propriedades.
clicar no Assinatura guia e selecionar o Assinar o assembly a caixa de seleção.
De escolher um arquivo de chave de nome forte, selecionar Novo.
The Criar chave de nome forte janela será exibida.
In nome de arquivo de chave, digite um nome para a sua chave de nome forte.
escolher se deseja proteger a chave com uma senha e, em seguida, clicar OK.
In O gerenciador de soluções, clicar com o botão direito do mouse em seu projeto e, em seguida, clique em Compilação.
Para assinar seu assembly com um nome forte fora do Visual Studio
- Use a ferramenta nome forte (sn.exe).
Quando suprimir avisos
Suprimir somente um aviso da regra, se o assembly é usado em um ambiente onde violação com o Sumário não é uma preocupação.
Consulte também
Tarefas
Como: Assinar um assembly com um nome forte
Referência
Ferramenta Strong Name (Sn.exe)