Compartilhar via


Passo a passo: Análise de código gerenciado para defeitos de código

Esta explicação passo a passo, você pode analisar um projeto gerenciado para defeitos de código usando a ferramenta de análise de código.

Esta explicação passo a passo guiará você pelo processo de análise de código de uso para analisar sua.NET gerenciado assemblies de código de conformidade com o Microsoft.NET Framework Design Guidelines.

Esta explicação passo a passo, você:

  • Analisar e corrigir os avisos de defeitos de código.

Pré-requisitos

  • Visual Studio Premium.

Criar uma biblioteca de classe

Para criar uma biblioteca de classe

  1. Sobre o arquivo menu de Visual Studio, clique em novo e, em seguida, clique em projeto.

  2. No Novo projeto caixa de diálogo, em Tipos de projeto, clique em Visual C#.

  3. Em modelos de, selecione Biblioteca de classe.

  4. No nome caixa de texto, digite CodeAnalysisManagedDemo e, em seguida, clique em OK.

  5. Após o projeto é criado, abra o arquivo Class1. cs.

  6. Substitua o texto existente no Class1. cs com o seguinte código:

    //CodeAnalysisManagedDemo
    //Class1.cs
    using System;
    namespace testCode
    {
        
        public class demo : Exception
        {
            
            public static void Initialize(int size) { }
            protected static readonly int _item;
            public static int item { get { return _item; } }
        }
    }
  7. Salve o arquivo Class1. cs.

Analisar o projeto.

Para analisar um projeto gerenciado para defeitos de código

  1. Selecione o projeto de CodeAnalysisManagedDemo em Solution Explorer.

  2. No menu Project, clique em Properties..

    A página de propriedades de CodeAnalysisManagedDemo é exibida.

  3. Clique em códigoAnalysis.

  4. Certifique-se de que Habilitara análise de código na compilação (define a constante CODE_ANALYSIS) está marcada. 

  5. Do executa este conjunto de regras lista suspensa, selecione Todas as regras do Microsoft.

  6. Sobre o arquivo menu, clique em Salvar itens selecionadose feche as páginas de propriedades de ManagedDemo.

  7. Sobre o Build menu, clique em Build ManagedDemo.

    Os avisos de compilação do projeto CodeAnalysisManagedDemo são relatados no A análise de código e saída windows.

    Se o Análise de código janela não aparece, diante do Analyze menu, escolha Windows e, em seguida Escolha Análise de código.

Corrigir os problemas de análise de código

Para corrigir violações de regra de análise de código

  1. Sobre o Exibir menu, clique em Error List.

    Dependendo do perfil desenvolvedor que você escolheu, você pode ter que apontar para Other Windows na Exibir menu e clique Error List.

  2. Em Solution Explorer, clique em Mostrar todos os arquivos.

  3. Em seguida, expanda o nó de propriedades e, em seguida, abra o arquivo AssemblyInfo. cs.

  4. Use a tabela a seguir para corrigir os avisos:

Avisos

Para corrigir o aviso

CA1014: Marcar assemblies com CLSCompliantAttribute: Microsoft.Design: 'demo' deve ser marcada com CLSCompliantAttribute e seu valor deve ser true.

  1. Adicione o código usingSystem; no arquivo AssemblyInfo. cs.

  2. Em seguida, adicione o código [assembly: CLSCompliant(true)] para o final do arquivo AssemblyInfo. cs.

  3. Crie o projeto.

CA1032: Implementar construtores de exceção padrão: Microsoft.Design: adicionar o seguinte construtor para essa classe: public demo(String)

  • Adicionar o construtor public demo (String s) : base(s) { } para a classe demo.

CA1032: Implementar construtores de exceção padrão: Microsoft.Design: adicionar o seguinte construtor para essa classe: demonstração pública (String, exceção)

  • Adicionar o construtor public demo (String s, Exception e) : base(s, e) { } para a classe demo.

CA1032: Implementar construtores de exceção padrão: Microsoft.Design: adicionar o seguinte construtor para essa classe: protegido demo (SerializationInfo, StreamingContext)

  1. Adicione o código using System.Runtime.Serialization; para o início do arquivo Class1. cs.

  2. Em seguida, adicione o construtorprotected demo (SerializationInfo info, StreamingContext context) : base(info, context) { } to the class demo.

  3. Crie o projeto.

CA1032: Implementar construtores de exceção padrão: Microsoft.Design: adicionar o seguinte construtor para essa classe: public demo()

  1. Adicionar o construtor public demo () : base() { } para a classe demo.

  2. Crie o projeto.

CA1709: Identificadores devem ser minúsculas corretamente: Microsoft.Naming: a capitalização do nome do espaço para nome 'testCode' para corrigir, alterá-la de 'TestCode'.

  • Alterar as maiúsculas e minúsculas do namespace testCode para TestCode.

CA1709: Identificadores devem ser minúsculas corretamente: Microsoft.Naming: a capitalização de demonstração' nome do tipo' para corrigir, alterá-la de "Demonstração".

  • Alterar o nome do membro a Demo.

CA1709: Identificadores devem ser minúsculas corretamente: Microsoft.Naming: a capitalização do item' nome do membro' para corrigir, alterá-lo para 'Item'.

  • Alterar o nome do membro a Item.

CA1710: Identificadores devem ter o correto sufixo: Microsoft.Naming: renomear 'testCode.demo' para terminar com 'Exceção'.

  • Alterar o nome da classe e construtores para DemoException.

CA2210: A Assemblies devem ter nomes fortes válidos: Assine 'ManagedDemo' com uma chave de nome forte.

  1. Sobre o projeto menu, clique em Propriedades de ManagedDemo.

    As propriedades do projeto aparecem.

  2. Clique em assinatura.

  3. Marque a caixa de seleção Sign the assembly.

  4. No Escolha um arquivo de chave de nome de seqüência de caracteres lista, selecione <New…>.

    O Create Strong Name Key caixa de diálogo aparece.

  5. No nome do arquivo de chave, digite TestKey.

  6. Digite uma senha e, em seguida, clique em OK.

  7. Sobre o arquivo menu, clique em Salvar itens selecionadose feche as páginas de propriedades.

  8. Crie o projeto.

CA2237: Os tipos ISerializable da marca com o SerializableAttribute: Microsoft.Usage: adicionar um atributo [Serializable] digitar 'demo', como esse tipo implementa ISerializable.

  1. Adicionar o [Serializable ()] de atributo à classe demo.

  2. Crie o projeto.

Depois de concluir as alterações, o arquivo Class1. cs deve parecer com o seguinte:

//CodeAnalysisManagedDemo
//Class1.cs
using System;
using System.Runtime.Serialization;


namespace TestCode
{

    [Serializable()] 
    public class DemoException : Exception
    {
        public DemoException () : base() { }
        public DemoException(String s) : base(s) { }
        public DemoException(String s, Exception e) : base(s, e) { }
        protected DemoException(SerializationInfo info, StreamingContext context) : base(info, context) { }

        public static void Initialize(int size) { }
        protected static readonly int _item;
        public static int Item { get { return _item; } }
    }
}

Excluir avisos de análise de código

Para excluir avisos de defeitos de código

  1. Para cada um dos avisos restantes, faça o seguinte:

    1. Na janela de análise de código, selecione o aviso.

    2. Escolha ações, em seguida, escolha Suprimir mensageme escolha No arquivo de supressão de projeto.

    Para mais informações, consulte Como: suprimir avisos usando o Item de Menu.

  2. Crie o projeto.

    O projeto é compilado sem erros ou avisos.