CA2210: Assemblies devem ter nomes fortes válidos
Item | Valor |
---|---|
RuleId | CA2210 |
Categoria | Microsoft.Design |
Alteração da falha | Sem interrupção |
Causa
Um assembly não é assinado com um nome forte, o nome forte não pôde ser verificado ou o nome forte não seria válido sem as configurações atuais do registro do computador.
Observação
Esta regra foi preterida. Para obter mais informações, confira Regras preteridas.
Descrição da regra
Essa regra recupera e verifica o nome forte de um assembly. Ocorrerá uma violação se qualquer uma das seguintes opções for verdadeira:
O assembly não tem um nome forte.
O assembly foi alterado após a assinatura.
O assembly foi assinado com atraso.
O assembly foi assinado incorretamente ou a assinatura falhou.
O assembly requer que as configurações do registro passem pela verificação. Por exemplo, a ferramenta Nome Forte (Sn.exe) foi usada para ignorar a verificação do assembly.
O nome forte protege clientes do carregamento desconhecido de um assembly adulterado. Os assemblies sem nomes fortes não devem ser implantados fora de cenários muito limitados. Se você compartilhar ou distribuir assemblies não assinados corretamente, o assembly poderá ser adulterado, o Common Language Runtime poderá não carregar o assembly ou o usuário talvez precise desabilitar a verificação em seu computador. Um assembly sem um nome forte tem as seguintes desvantagens:
Suas origens não podem ser verificadas.
O Common Language Runtime não poderá avisar os usuários se o conteúdo do assembly foi alterado.
Ele não pode ser carregado no cache de assembly global.
Observe que, para carregar e analisar um assembly assinado com atraso, você deve desabilitar a verificação do assembly.
Como corrigir violações
Criar um par de chaves
Use um dos seguintes procedimentos:
Para o .NET Framework 2.0, use a opção
/keyfile
ou/keycontainer
do compilador /KEYFILE (Especificar Chave ou Par de Chaves para Assinar um Assembly) ou a opção do compilador /KEYCONTAINER (Especificar um Contêiner de Chave para Assinar um Assembly) em C++).Para o .NET Framework v1.0 ou v1.1, use o atributo System.Reflection.AssemblyKeyFileAttribute ou System.Reflection.AssemblyKeyNameAttribute.
Assinar o assembly com um nome forte no Visual Studio
No Visual Studio, abra a solução.
No Gerenciador de Soluções, clique com o botão direito do mouse no seu projeto e clique em Propriedades.
Clique na guia Assinatura e marque a caixa de seleção Assinar o assembly.
Em Escolha um arquivo de chaves de nome forte, selecione Novo.
A janela Criar Chave de Nome Forte será exibida.
Em Nome do arquivo de chave, digite o nome para a sua chave de nome forte.
Escolha se deseja proteger a chave com uma senha e clique em OK.
No Gerenciador de Soluções, clique com o botão direito do mouse no seu projeto e clique em Criar.
Assinar o assembly com um nome forte fora do Visual Studio
Use a ferramenta Nome forte (Sn.exe).
Quando suprimir avisos
Apenas suprima o aviso dessa regra se o assembly for usado em um ambiente em que a violação do conteúdo não será uma preocupação.
Confira também
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de