Passo a passo: Defeitos Analisando código gerenciado para códigoWalkthrough: Analyzing managed code for code defects

Neste passo a passo, você irá analisar um projeto gerenciado em busca de defeitos de código usando a ferramenta de análise de código.In this walkthrough, you'll analyze a managed project for code defects by using the code analysis tool.

Este passo a passo o orienta no processo de usar a análise de código para analisar seus assemblies de código gerenciado .NET quanto à conformidade com as diretrizes de design do Microsoft .NET Framework.This walkthrough steps you through the process of using code analysis to analyze your .NET managed code assemblies for conformance with the Microsoft .NET Framework design guidelines.

Criar uma biblioteca de classesCreate a class library

Para criar uma biblioteca de classesTo create a class library

  1. No menu Arquivo, escolha Novo > Projeto.On the File menu, choose New > Project.

  2. No novo projeto diálogo caixa, expanda instalado > Visual C# e, em seguida, escolha Windows Desktop.In the New Project dialog box, expand Installed > Visual C#, and then choose Windows Desktop.

  3. Escolha o biblioteca de classes (.NET Framework) modelo.Choose the Class Library (.NET Framework) template.

  4. No nome caixa de texto, digite CodeAnalysisManagedDemo e, em seguida, clique em Okey.In the Name text box, type CodeAnalysisManagedDemo and then click OK.

  5. Depois que o projeto é criado, abra a Class1.cs arquivo.After the project is created, open the Class1.cs file.

  6. Substitua o texto existente em Class1.cs pelo código a seguir:Replace the existing text in Class1.cs with the following code:

    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.Save the Class1.cs file.

Analisar o projetoAnalyze the project

Para analisar um projeto gerenciado em busca de defeitos de códigoTo analyze a managed project for code defects

  1. Selecione o projeto CodeAnalysisManagedDemo no Gerenciador de soluções.Select the CodeAnalysisManagedDemo project in Solution Explorer.

  2. No menu Projeto, clique em Propriedades.On the Project menu, click Properties.

    A página de propriedades CodeAnalysisManagedDemo é exibida.The CodeAnalysisManagedDemo properties page is displayed.

  3. Escolha o análise de código guia.Choose the Code Analysis tab.

  4. Certifique-se de que habilitar a análise de código no Build é verificada.Make sure that Enable Code Analysis on Build is checked.

  5. Dos executar este conjunto de regras lista suspensa, selecione todas as regras do Microsoft.From the Run this rule set drop-down list, select Microsoft All Rules.

  6. Sobre o arquivo menu, clique em salvar itens selecionadose, em seguida, feche as páginas de propriedades.On the File menu, click Save Selected Items, and then close the properties pages.

  7. Sobre o compilar menu, clique em CodeAnalysisManagedDemo compilar.On the Build menu, click Build CodeAnalysisManagedDemo.

    Os avisos de compilação do projeto CodeAnalysisManagedDemo são mostrados na lista de erros e saída windows.The CodeAnalysisManagedDemo project build warnings are shown in the Error List and Output windows.

Corrija os problemas de análise de códigoCorrect the code analysis issues

Para corrigir violações de regra de análise de códigoTo correct code analysis rule violations

  1. Sobre o modo de exibição menu, escolha lista de erros.On the View menu, choose Error List.

    Dependendo do perfil do desenvolvedor que você escolheu, talvez você precise apontar para Other Windows sobre o exibição menu e, em seguida, escolha lista de erros.Depending on the developer profile that you chose, you might have to point to Other Windows on the View menu, and then choose Error List.

  2. Na Gerenciador de soluções, escolha Mostrar todos os arquivos.In Solution Explorer, choose Show All Files.

  3. Expanda o nó de propriedades e, em seguida, abra o AssemblyInfo.cs arquivo.Expand the Properties node, and then open the AssemblyInfo.cs file.

  4. Use as dicas a seguir para corrigir os avisos:Use the following tips to correct the warnings:

    CA1014: Marcar assemblies com CLSCompliantAttribute: Microsoft.Design: 'demonstração' deve ser marcada com CLSCompliantAttribute e seu valor deve ser true.CA1014: Mark assemblies with CLSCompliantAttribute: Microsoft.Design: 'demo' should be marked with the CLSCompliantAttribute, and its value should be true.

    1. Adicione o código using System; ao arquivo AssemblyInfo.cs.Add the code using System; to the AssemblyInfo.cs file.

    2. Em seguida, adicione o código [assembly: CLSCompliant(true)] ao final do arquivo AssemblyInfo.cs.Next, add the code [assembly: CLSCompliant(true)] to the end of the AssemblyInfo.cs file.

    CA1032: Implementar construtores de exceção padrão: Microsoft.Design: Adicione o seguinte construtor para essa classe: demo(String) públicaCA1032: Implement standard exception constructors: Microsoft.Design: Add the following constructor to this class: public demo(String)

    1. Adicione o construtor public demo (String s) : base(s) { } à classe demo.Add the constructor public demo (String s) : base(s) { } to the class demo.

    CA1032: Implementar construtores de exceção padrão: Microsoft.Design: Adicione o seguinte construtor para essa classe: demonstração pública (cadeia de caracteres, exceção)CA1032: Implement standard exception constructors: Microsoft.Design: Add the following constructor to this class: public demo(String, Exception)

    1. Adicione o construtor public demo (String s, Exception e) : base(s, e) { } à classe demo.Add the constructor public demo (String s, Exception e) : base(s, e) { } to the class demo.

    CA1032: Implementar construtores de exceção padrão: Microsoft.Design: Adicione o seguinte construtor para essa classe: protegido demonstração (SerializationInfo, StreamingContext)CA1032: Implement standard exception constructors: Microsoft.Design: Add the following constructor to this class: protected demo(SerializationInfo, StreamingContext)

    1. Adicione o código using System.Runtime.Serialization; para o início do arquivo Class1.cs.Add the code using System.Runtime.Serialization; to the beginning of the Class1.cs file.

    2. Em seguida, adicione o construtor protected demo (SerializationInfo info, StreamingContext context) : base(info, context) { } to the class demo.Next, add the constructor protected demo (SerializationInfo info, StreamingContext context) : base(info, context) { } to the class demo.

    CA1032: Implementar construtores de exceção padrão: Microsoft.Design: Adicione o seguinte construtor para essa classe: público DemoCA1032: Implement standard exception constructors: Microsoft.Design: Add the following constructor to this class: public demo()

    1. Adicione o construtor public demo () : base() { } à classe demo .Add the constructor public demo () : base() { } to the class demo.

    CA1709: Os identificadores devem ter maiusculas e minúsculas corretamente: Microsoft.Naming: corrija as maiusculas e minúsculas do nome do namespace 'testCode' alterando-o para 'TestCode'.CA1709: Identifiers should be cased correctly: Microsoft.Naming: Correct the casing of namespace name 'testCode' by changing it to 'TestCode'.

    1. Alterar as maiusculas e minúsculas do namespace testCode para TestCode.Change the casing of the namespace testCode to TestCode.

    CA1709: Os identificadores devem ter maiusculas e minúsculas corretamente: Microsoft.Naming: corrija as maiusculas e minúsculas da demonstração' nome de tipo' alterando-o para 'Demonstração'.CA1709: Identifiers should be cased correctly: Microsoft.Naming: Correct the casing of type name 'demo' by changing it to 'Demo'.

    1. Altere o nome do membro a ser Demo.Change the name of the member to Demo.

    CA1709: Os identificadores devem ter maiusculas e minúsculas corretamente: Microsoft.Naming: corrija as maiusculas e minúsculas do item' nome do membro' alterando-o para 'Item'.CA1709: Identifiers should be cased correctly: Microsoft.Naming: Correct the casing of member name 'item' by changing it to 'Item'.

    1. Altere o nome do membro a ser Item.Change the name of the member to Item.

    CA1710: Os identificadores devem ter sufixo correto: Microsoft.Naming: Renomear 'testCode.demo' para terminar em 'Exceções'.CA1710: Identifiers should have correct suffix: Microsoft.Naming: Rename 'testCode.demo' to end in 'Exception'.

    1. Altere o nome da classe e seus construtores para DemoException.Change the name of the class and its constructors to DemoException.

    CA2210: Os Assemblies devem ter nomes fortes válidos: assinar 'CodeAnalysisManagedDemo' com uma chave de nome forte.CA2210: Assemblies should have valid strong names: Sign 'CodeAnalysisManagedDemo' with a strong name key.

    1. Sobre o Project menu, escolha CodeAnalysisManagedDemo propriedades.On the Project menu, choose CodeAnalysisManagedDemo Properties.

      As propriedades de projeto aparecem.The project properties appear.

    2. Escolha a guia Assinatura.Choose the Signing tab.

    3. Selecione o assinar o assembly caixa de seleção.Select the Sign the assembly check box.

    4. No escolher um arquivo de chave de nome de cadeia de caracteres lista, selecione <novo... >.In the Choose a string name key file list, select <New...>.

      O criar chave de nome forte caixa de diálogo é exibida.The Create Strong Name Key dialog box appears.

    5. No nome do arquivo de chave, digite TestKey.In the Key file name, type TestKey.

    6. Insira uma senha e, em seguida, escolha Okey.Enter a password and then choose OK.

    7. Sobre o arquivo menu, escolha salvar itens selecionadose, em seguida, feche as páginas de propriedades.On the File menu, choose Save Selected Items, and then close the property pages.

    CA2237: Marcar tipos ISerializable com SerializableAttribute: Microsoft.Usage: adicionar um atributo [Serializable] para o tipo 'demonstração', pois esse tipo implementa ISerializable.CA2237: Mark ISerializable types with SerializableAttribute: Microsoft.Usage: Add a [Serializable] attribute to type 'demo' as this type implements ISerializable.

    1. Adicione a [Serializable ()] à classe de atributo demo.Add the [Serializable ()] attribute to the class demo.

    Depois de concluir as alterações, o arquivo Class1. cs deve ser semelhante ao seguinte:After you complete the changes, the Class1.cs file should look like the following:

    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; } }
        }
    }
    
  5. Recompile o projeto.Rebuild the project.

Excluir avisos da análise de códigoExclude code analysis warnings

Para excluir os avisos de defeitos de códigoTo exclude code defect warnings

  1. Para cada um dos avisos restantes, faça o seguinte:For each of the remaining warnings, do the following:

    1. Selecione o aviso na Error List.Select the warning in the Error List.

    2. No menu de contexto ou o botão direito do mouse, escolha suprimir > no arquivo de supressão.From the right-click or context menu, choose Suppress > In Suppression File.

  2. Recompile o projeto.Rebuild the project.

    O projeto é compilado sem avisos ou erros.The project builds without any warnings or errors.

Consulte tambémSee also

Análise de código para código gerenciadoCode analysis for managed code