Compartir a través de


Tutorial: Analizar código administrado en previsión de defectos de código

En este tutorial, se analizará un proyecto administrado en previsión de defectos de código con la herramienta de análisis de código.

En este tutorial, se describe paso a paso el proceso de utilizar el análisis de código para analizar la conformidad de los ensamblados de código administrado de .NET con las Instrucciones de diseño de Microsoft .NET Framework.

En este tutorial realizará las acciones siguientes:

  • Analizar y corregir las advertencias de defectos del código.

Requisitos previos

  • Visual Studio Premium.

Crear una biblioteca de clases

Para crear una biblioteca de clases

  1. En el menú Archivo de Visual Studio, haga clic en Nuevo y, a continuación, en Proyecto.

  2. En el cuadro de diálogo Nuevo proyecto, en Tipos de proyecto, haga clic en Visual C#.

  3. En Plantillas, seleccione Biblioteca de clases.

  4. En el cuadro de texto Nombre, escriba CodeAnalysisManagedDemo y, a continuación, haga clic en Aceptar.

  5. Una vez creado el proyecto, abra el archivo Class1.cs.

  6. Reemplace el texto existente del archivo Class1.cs por el siguiente 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. Guarde el archivo Class1.cs.

Analizar el proyecto

Para analizar un proyecto administrado en previsión de defectos de código

  1. Seleccione el proyecto CodeAnalysisManagedDemo en el Explorador de soluciones.

  2. En el menú Proyecto, haga clic en Propiedades.

    Se muestra la página de propiedades de CodeAnalysisManagedDemo.

  3. Haga clic en Análisis de código.

  4. Asegúrese de que Habilitar Análisis de código de compilación (define constante de CODE_ANALYSIS) está activado.

  5. En la lista desplegable Ejecutar este conjunto de reglas, seleccione Todas las reglas de Microsoft.

  6. En el menú Archivo, haga clic en Guardar los elementos seleccionados y, a continuación, cierre las páginas de propiedades de ManagedDemo.

  7. En el menú Compilar, haga clic en Compilar ManagedDemo.

    Las advertencias de compilación del proyecto CodeAnalysisManagedDemo se notifican en la ventana Análisis de código y en la ventana Salida.

    Si la ventana Análisis de código no aparece, en el menú Analizar, elija Ventanas y elija después Análisis de código.

Corregir los problemas de análisis de código

Para corregir las infracciones de reglas de los análisis de código

  1. En el menú Ver, haga clic en Lista de errores.

    Dependiendo del perfil del desarrollador que seleccione, es posible que deba elegir el comando Otras ventanas del menú Ver y, a continuación, hacer clic en Lista de errores.

  2. En el Explorador de soluciones, haga clic en Mostrar todos los archivos.

  3. A continuación, expanda el nodo Propiedades y abra el archivo AssemblyInfo.cs.

  4. Utilice la tabla siguiente para corregir las advertencias:

Advertencias

Para corregir la advertencia

CA1014: Marcar los ensamblados con CLSCompliantAttribute: Microsoft.Design: 'demo' debe marcarse como CLSCompliantAttribute y el valor debe ser igual a true.

  1. Agregue el código usingSystem; al archivo AssemblyInfo.cs.

  2. A continuación, agregue el código [assembly: CLSCompliant(true)] al final del archivo AssemblyInfo.cs.

  3. Recompile el proyecto.

CA1032: Implementar constructores de excepción estándar: Microsoft.Design: Agregue el siguiente constructor a esta clase: public demo(String)

  • Agregue el constructor public demo (String s) : base(s) { } a la clase demo.

CA1032: Implementar constructores de excepción estándar: Microsoft.Design: Agregue el siguiente constructor a esta clase: public demo(String, Exception)

  • Agregue el constructor public demo (String s, Exception e) : base(s, e) { } a la clase demo.

CA1032: Implementar constructores de excepción estándar: Microsoft.Design: Agregar el siguiente constructor a esta clase: protected demo(SerializationInfo, StreamingContext)

  1. Agregue el código using System.Runtime.Serialization; al principio del archivo Class1.cs.

  2. A continuación, agregue el constructor protected demo (SerializationInfo info, StreamingContext context) : base(info, context) { } to the class demo..

  3. Recompile el proyecto.

CA1032: Implementar constructores de excepción estándar: Microsoft.Design: Agregue el siguiente constructor a esta clase: public demo()

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

  2. Recompile el proyecto.

CA1709: Los identificadores deberían utilizar las mayúsculas y minúsculas correctamente: Microsoft.Naming: corrija el uso de mayúsculas y minúsculas en el nombre del espacio de nombres 'testCode' cambiándolo a 'TestCode'.

  • Cambie el uso de mayúsculas y minúsculas del espacio de nombres testCode a TestCode.

CA1709: Los identificadores deberían utilizar las mayúsculas y minúsculas correctamente: Microsoft.Naming: corrija el uso de mayúsculas y minúsculas en el nombre de tipo 'demo' cambiándolo a 'Demo'.

  • Cambie el nombre del miembro a Demo.

CA1709: Los identificadores deberían utilizar las mayúsculas y minúsculas correctamente: Microsoft.Naming: corrija el uso de mayúsculas y minúsculas en el nombre del miembro 'item' cambiándolo a 'Item'.

  • Cambie el nombre del miembro a Item.

CA1710: Los identificadores deberían tener el sufijo correcto: Microsoft.Naming: Cambie el nombre 'testCode.demo' para que termine en 'Exception'.

  • Cambie el nombre de la clase y sus constructores a DemoException.

CA2210: Los ensamblados deben tener nombres seguros válidos: Firme 'ManagedDemo' con una clave de nombre seguro.

  1. En el menú Proyecto, haga clic en Propiedades de ManagedDemo.

    Aparecerán las propiedades del proyecto.

  2. Haga clic en Firma.

  3. Active la casilla Firmar el ensamblado.

  4. En la lista de Elija un archivo de clave de nombre de cadena , seleccione <Nuevo...>.

    Aparecerá el cuadro de diálogo Crear clave de nombre seguro.

  5. En el Nombre del archivo de clave, escriba TestKey.

  6. Escriba una contraseña y haga clic en Aceptar.

  7. En el menú Archivo, haga clic en Guardar los elementos seleccionados y, a continuación, cierre las páginas de propiedades.

  8. Recompile el proyecto.

CA2237: Marcar los tipos ISerializable con SerializableAttribute: Microsoft.Usage: Agregar [Serializable] a 'demo' ya que este tipo implementa ISerializable.

  1. Agregue el atributo [Serializable ()] a la clase demo.

  2. Recompile el proyecto.

Después de completar los cambios, el archivo Class1.cs debe ser similar al siguiente:

//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 las advertencias de los análisis de código

Para excluir las advertencias sobre defectos del código

  1. Para cada una de las advertencias restantes, haga lo siguiente:

    1. En la ventana de análisis de código, seleccione la advertencia.

    2. Elija Acciones, elija luego Suprimir mensaje y, por último, elija En archivo de supresión de proyecto.

    Para obtener más información, vea Cómo: Suprimir advertencias mediante el elemento de menú

  2. Recompile el proyecto.

    El proyecto se compilará sin advertencias ni errores.