Tutorial: Analizar código administrado para el código hasta los defectosWalkthrough: Analyzing managed code for code defects

En este tutorial, podrá analizar un proyecto administrado en previsión de defectos de código mediante la herramienta de análisis de código.In this walkthrough, you'll analyze a managed project for code defects by using the code analysis tool.

Este tutorial le guía a través del proceso de uso de análisis de código para analizar los ensamblados de código administrado de .NET de conformidad con las directrices de diseño de 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.

Crear una biblioteca de clasesCreate a class library

Para crear una biblioteca de clasesTo create a class library

  1. En el archivo menú, elija New > proyecto... .On the File menu, choose New > Project....

  2. En el nuevo proyecto cuadro de diálogo, expanda instalado > Visual C#y, a continuación, elija escritorio clásico de Windows.In the New Project dialog box, expand Installed > Visual C#, and then choose Windows Classic Desktop.

  3. Elija la biblioteca de clases (.NET Framework) plantilla.Choose the Class Library (.NET Framework) template.

  4. En el nombre cuadro de texto, escriba CodeAnalysisManagedDemo y, a continuación, haga clic en Aceptar.In the Name text box, type CodeAnalysisManagedDemo and then click OK.

  5. Una vez creado el proyecto, abra el Class1.cs archivo.After the project is created, open the Class1.cs file.

  6. Reemplace el texto existente en Class1.cs con el código siguiente: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. Guarde el archivo Class1.cs.Save the Class1.cs file.

Analizar el proyectoAnalyze the project

Para analizar un proyecto administrado en previsión de defectos de códigoTo analyze a managed project for code defects

  1. Seleccione el proyecto CodeAnalysisManagedDemo en el Explorador de soluciones.Select the CodeAnalysisManagedDemo project in Solution Explorer.

  2. En el menú Proyecto, haga clic en Propiedades.On the Project menu, click Properties.

    Se abrirá la página de propiedades de CodeAnalysisManagedDemo.The CodeAnalysisManagedDemo properties page is displayed.

  3. Elija la análisis de código ficha.Choose the Code Analysis tab.

  4. Asegúrese de que Habilitar análisis de código al compilar está activada.Make sure that Enable Code Analysis on Build is checked.

  5. Desde el ejecutar este conjunto de reglas lista desplegable, seleccione todas las reglas de Microsoft.From the Run this rule set drop-down list, select Microsoft All Rules.

  6. En el archivo menú, haga clic en guardar los elementos seleccionadosy, a continuación, cierre las páginas de propiedades.On the File menu, click Save Selected Items, and then close the properties pages.

  7. En el generar menú, haga clic en CodeAnalysisManagedDemo compilar.On the Build menu, click Build CodeAnalysisManagedDemo.

    Se muestran las advertencias de compilación del proyecto CodeAnalysisManagedDemo en la lista de errores y salida windows.The CodeAnalysisManagedDemo project build warnings are shown in the Error List and Output windows.

Corregir los problemas de análisis de códigoCorrect the code analysis issues

Para corregir las infracciones de reglas de análisis de códigoTo correct code analysis rule violations

  1. En el vista menú, elija lista de errores.On the View menu, choose Error List.

    Dependiendo del perfil del desarrollador que eligió, es posible que deba hacer otras ventanas en el vista menú y, a continuación, elija lista de errores.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. En el Explorador de soluciones, elija mostrar todos los archivos.In Solution Explorer, choose Show All Files.

  3. Expanda el nodo de propiedades y, a continuación, abra el AssemblyInfo.cs archivo.Expand the Properties node, and then open the AssemblyInfo.cs file.

  4. Utilice las siguientes sugerencias para corregir las advertencias:Use the following tips to correct the warnings:

    CA1014: Marcar los ensamblados con CLSCompliantAttribute: Microsoft.Design: 'demo' debe marcarse con CLSCompliantAttribute y su valor debe ser true.CA1014: Mark assemblies with CLSCompliantAttribute: Microsoft.Design: 'demo' should be marked with the CLSCompliantAttribute, and its value should be true.

    1. Agregue el código using System; al archivo AssemblyInfo.cs.Add the code using System; to the AssemblyInfo.cs file.

    2. A continuación, agregue el código [assembly: CLSCompliant(true)] hasta el final del archivo AssemblyInfo.cs.Next, add the code [assembly: CLSCompliant(true)] to the end of the AssemblyInfo.cs file.

    CA1032: Implementar constructores de excepción estándar: Microsoft.Design: agregue el siguiente constructor a esta clase: public demo (String)CA1032: Implement standard exception constructors: Microsoft.Design: Add the following constructor to this class: public demo(String)

    1. Agregue el constructor public demo (String s) : base(s) { } a la clase demo.Add the constructor public demo (String s) : base(s) { } to the class demo.

    CA1032: Implementar constructores de excepción estándar: Microsoft.Design: agregue el siguiente constructor a esta clase: public demo (String, Exception)CA1032: Implement standard exception constructors: Microsoft.Design: Add the following constructor to this class: public demo(String, Exception)

    1. Agregue el constructor public demo (String s, Exception e) : base(s, e) { } a la clase demo.Add the constructor public demo (String s, Exception e) : base(s, e) { } to the class demo.

    CA1032: Implementar constructores de excepción estándar: Microsoft.Design: agregue el siguiente constructor a esta clase: protected demo (SerializationInfo, StreamingContext)CA1032: Implement standard exception constructors: Microsoft.Design: Add the following constructor to this class: protected demo(SerializationInfo, StreamingContext)

    1. Agregue el código using System.Runtime.Serialization; al principio del archivo Class1.cs.Add the code using System.Runtime.Serialization; to the beginning of the Class1.cs file.

    2. A continuación, agregue el constructorprotected 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 constructores de excepción estándar: Microsoft.Design: agregue el siguiente constructor a esta clase: public demo()CA1032: Implement standard exception constructors: Microsoft.Design: Add the following constructor to this class: public demo()

    1. Agregue el constructor public demo () : base() { } a la clase demo .Add the constructor public demo () : base() { } to the class demo.

    CA1709: Los identificadores deben ser minúsculas correctamente: Microsoft.Naming: corrija las mayúsculas y minúsculas del nombre de espacio de nombres 'testCode' cambiándolo a 'TestCode'.CA1709: Identifiers should be cased correctly: Microsoft.Naming: Correct the casing of namespace name 'testCode' by changing it to 'TestCode'.

    1. Cambiar las mayúsculas y minúsculas del espacio de nombres testCode a TestCode.Change the casing of the namespace testCode to TestCode.

    CA1709: Los identificadores deben ser minúsculas correctamente: Microsoft.Naming: corrija las mayúsculas y minúsculas de tipo nombre 'demo' cambiándolo a 'Demo'.CA1709: Identifiers should be cased correctly: Microsoft.Naming: Correct the casing of type name 'demo' by changing it to 'Demo'.

    1. Cambiar el nombre del miembro que Demo.Change the name of the member to Demo.

    CA1709: Los identificadores deben ser minúsculas correctamente: Microsoft.Naming: corrija las mayúsculas y minúsculas del miembro nombre 'item' cambiándolo a 'Item'.CA1709: Identifiers should be cased correctly: Microsoft.Naming: Correct the casing of member name 'item' by changing it to 'Item'.

    1. Cambiar el nombre del miembro que Item.Change the name of the member to Item.

    CA1710: Los identificadores deberían tener el sufijo correcto: Microsoft.Naming: cambiar el nombre 'testCode.demo' para que termine en 'Exception'.CA1710: Identifiers should have correct suffix: Microsoft.Naming: Rename 'testCode.demo' to end in 'Exception'.

    1. Cambiar el nombre de la clase y sus constructores DemoException.Change the name of the class and its constructors to DemoException.

    CA2210: Los ensamblados deben tener nombres seguros válidos: firme 'CodeAnalysisManagedDemo' con una clave de nombre seguro.CA2210: Assemblies should have valid strong names: Sign 'CodeAnalysisManagedDemo' with a strong name key.

    1. En el proyecto menú, elija CodeAnalysisManagedDemo propiedades.On the Project menu, choose CodeAnalysisManagedDemo Properties.

      Aparecen las propiedades del proyecto.The project properties appear.

    2. Elija la pestaña Firma .Choose the Signing tab.

    3. Seleccione el firmar el ensamblado casilla de verificación.Select the Sign the assembly check box.

    4. En el elegir un archivo de clave de nombre de cadena lista, seleccione <nuevo... >.In the Choose a string name key file list, select <New...>.

      El crear clave de nombre seguro aparece el cuadro de diálogo.The Create Strong Name Key dialog box appears.

    5. En el nombre de archivo de clave, escriba TestKey.In the Key file name, type TestKey.

    6. Escriba una contraseña y, a continuación, elija Aceptar.Enter a password and then choose OK.

    7. En el archivo menú, elija guardar los elementos seleccionadosy, a continuación, cierre las páginas de propiedades.On the File menu, choose Save Selected Items, and then close the property pages.

    CA2237: Marcar los tipos ISerializable con SerializableAttribute: Microsoft.Usage: agregar un atributo [Serializable] al tipo 'demo' ya que este tipo implementa ISerializable.CA2237: Mark ISerializable types with SerializableAttribute: Microsoft.Usage: Add a [Serializable] attribute to type 'demo' as this type implements ISerializable.

    1. Agregar el [Serializable ()] a la clase de atributo demo.Add the [Serializable ()] attribute to the class demo.

    Después de completar los cambios, el archivo Class1.cs debe ser similar al siguiente: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 el proyecto.Rebuild the project.

Excluya las advertencias de análisis de códigoExclude code analysis warnings

Para excluir las advertencias de defectos de códigoTo exclude code defect warnings

  1. Para cada una de las advertencias restantes, haga lo siguiente:For each of the remaining warnings, do the following:

    1. Seleccione la advertencia en el lista de errores.Select the warning in the Error List.

    2. En el menú contextual o menú contextual, elija suprimir > en el archivo de supresión.From the right-click or context menu, choose Suppress > In Suppression File.

  2. Recompile el proyecto.Rebuild the project.

    El proyecto se compila sin errores ni advertencias.The project builds without any warnings or errors.

Vea tambiénSee also

Análisis de código para código administradoCode analysis for managed code