CA2210: os assemblies devem ter nomes fortes válidos
TypeName |
AssembliesShouldHaveValidStrongNames |
CheckId |
CA2210 |
Categoria |
Microsoft.Design |
Alteração Significativa |
Sem Quebra |
Causa
Um assembly não é assinado com um nome forte, o nome forte não pôde ser verificado, ou nome forte não será válida sem as configurações atuais do Registro do computador.
Descrição da Regra
Esta regra verifica e recupera o nome forte do assembly.Uma violação ocorrer se qualquer um dos seguintes for verdadeiro:
O assembly não tiver um nome forte.
O assembly foi modificado depois de assinar.
O assembly atraso-é assinado.
O assembly foi assinado, incorretamente ou a assinatura foi falha.
O assembly requer configurações do Registro para transmitir a verificação.Por exemplo, a ferramenta de nome forte (Sn.exe) foi usada para ignorar a verificação para o assembly.
O nome forte protege clientes unknowingly de carregar um assembly que é violados.Os assemblies sem nomes fortes não devem ser implantados muito cenários limitados a parte externa.Se você compartilhar ou distribui os assemblies que não estão assinados corretamente, o assembly pode ser violados, Common Language Runtime não pode carregar o assembly, ou o usuário talvez precise desabilitar a verificação em seu computador.Um assembly sem um nome forte tem os seguintes desvantagens:
As fontes não podem ser verificadas.
Common Language Runtime não pode aviso usuários se o conteúdo do assembly foi modificado.
Não pode ser carregado em cachê de assembly global.
Observe que para carregar e para analisar um assembly atraso- assinado, você deve desabilitar a verificação do assembly.
Como Corrigir Violações
Para criar um arquivo de chave
Use um dos seguintes procedimentos:
Use a ferramenta do vinculador de assembly (Al.exe) fornecida por .NET Framework SDK.
Para .NET Framework v1.0 ou v1.1, use AssemblyKeyFileAttribute ou atributo de AssemblyKeyNameAttribute .
Para .NET Framework 2,0, use /keyfile ou a opção /KEYFILE (especificar chave ou par de chaves para assinar um assembly) do compilador de /keycontainer ou a opção do vinculador de /KEYCONTAINER (especificar um contêiner de chave para assinar um assembly) em C++).
Para assinar o assembly com um nome forte no Visual Studio
Em Visual Studio, abra a solução.
Em Gerenciador de Soluções, clique com o botão direito do mouse no projeto e clique em Propriedades.
Clique na guia de Assinando , e marque a caixa de seleção de Assinar o assembly .
De Escolha um arquivo de chave de nome forte, Novoselecione.
A janela de Criar Chave de Nome Forte será exibida.
Em Nome do arquivo de chaves, digite um nome para sua chave de nome forte.
Escolha se proteger a chave com uma senha, e clique em OK.
Em Gerenciador de Soluções, clique com o botão direito do mouse no projeto e clique em Compilar.
Para assinar o assembly com um nome forte fora do Visual Studio
- Use a ferramenta de nome forte (Sn.exe) que é fornecida por .NET Framework SDK.Para obter mais informações, consulte Sn.exe (Ferramenta de Nome Forte).
Quando Suprimir Alertas
Suprima apenas um aviso dessa regra se o assembly for usado em um ambiente onde violar o conteúdo não é um problema.
Consulte também
Tarefas
Como assinar um assembly com um nome forte