Partager via


Procédure pas à pas : utiliser l’analyse statique du code pour rechercher les défauts de code

Dans cette procédure pas à pas, vous allez analyser un projet managé à la recherche de défauts de code à l’aide de l’analyse du code hérité.

Cet article vous guide tout au long du processus d’utilisation de l’analyse héritée pour analyser vos assemblys de code managé .NET en vue de leur conformité avec les instructions de conception .NET.

Créer une bibliothèque de classes

  1. Ouvrez Visual Studio et créez un projet à partir du modèle Bibliothèque de classes ( .NET Framework).

  2. Nommez le projet CodeAnalysisManagedDemo.

  3. Une fois le projet créé, ouvrez le fichier Class1.cs.

  4. Remplacez le texte existant dans Class1.cs par le code suivant :

    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; } }
        }
    }
    
  5. Enregistrez le fichier Class1.cs.

Analyser le projet à la recherche de défauts de code

  1. Sélectionnez le projet CodeAnalysisManagedDemo dans l’Explorateur de solutions.

  2. Dans le menu Projet , cliquez sur Propriétés.

    La page de propriétés CodeAnalysisManagedDemo s’affiche.

  3. Choisissez l’onglet Analyse du code.

  4. Assurez-vous que l’option Exécuter au moment de la génération est sélectionnée dans la section Analyseurs binaires.

  5. Dans la liste déroulante Règles actives, sélectionnez Toutes les règles Microsoft.

  6. Dans le menu Fichier, cliquez sur Enregistrer les éléments sélectionnés, puis fermez les pages de propriétés.

  7. Dans le menu Générer, cliquez sur Générer CodeAnalysisManagedDemo.

    Les avertissements de génération du projet CodeAnalysisManagedDemo s’affichent dans les fenêtres Liste d’erreurs et Sortie.

Corriger les problèmes d’analyse du code

  1. Dans le menu Affichage, choisissez Liste d’erreurs.

    Selon le profil de développeur que vous avez choisi, vous devrez peut-être pointer vers Autres fenêtres dans le menu Affichage, puis choisir Liste d’erreurs.

  2. Dans l’Explorateur de solutions, choisissez Afficher tous les fichiers.

  3. Développez le nœud Propriétés, puis ouvrez le fichier AssemblyInfo.cs.

  4. Utilisez les conseils suivants pour corriger les avertissements :

    CA1014 : Marquez les assemblys avec CLSCompliantAttribute : ajoutez le code [assembly: CLSCompliant(true)] à la fin du fichier AssemblyInfo.cs.

    CA1032 : Implémentez des constructeurs d’exceptions standard : ajoutez le constructeur public demo (String s) : base(s) { } à la classe demo.

    CA1032 : Implémentez des constructeurs d’exceptions standard : ajoutez le constructeur public demo (String s, Exception e) : base(s, e) { } à la classe demo.

    CA1032 : Implémentez des constructeurs d’exceptions standard : ajoutez le constructeur protected demo (SerializationInfo info, StreamingContext context) : base(info, context) { } à la classe demo. Vous devez également ajouter une instruction using pour System.Runtime.Serialization.

    CA1032 : Implémentez des constructeurs d’exceptions standard : ajoutez le constructeur public demo () : base() { } à la classe demo.

    CA1709 : Les identificateurs doivent avoir la bonne casse : remplacez la casse de l’espace de noms testCode par TestCode.

    CA1709 : Les identificateurs doivent avoir la bonne casse : remplacez le nom du membre par Demo.

    CA1709 : Les identificateurs doivent avoir la bonne casse : remplacez le nom du membre par Item.

    CA1710 : Les identificateurs doivent avoir un suffixe correct : remplacez le nom de la classe et de ses constructeurs par DemoException.

    CA2237 : Marquez les types ISerializable avec SerializableAttribute : ajoutez l’attribut [Serializable ()] à la classe demo.

    CA2210 : Les assemblys doivent avoir des noms forts valides : signez « CodeAnalysisManagedDemo » avec une clé à nom fort :

    1. Dans le menu Projet, choisissez Propriétés de CodeAnalysisManagedDemo.

      Les propriétés du projet s’affichent.

    2. Choisissez l'onglet Signature .

    3. Sélectionnez la case Signer l'assembly.

    4. Dans la liste Choisir un fichier de clé de nom de chaîne, sélectionnez <Nouveau>.

      La boîte de dialogue Créer une clé de nom fort s'affiche.

    5. Pour Nom du fichier de clé, entrez TestKey.

    6. Entrez un mot de passe, puis choisissez OK.

    7. Dans le menu Fichier, choisissez Enregistrer les éléments sélectionnés, puis fermez les pages de propriétés.

    Une fois toutes les modifications effectuées, le fichier Class1.cs doit ressembler à ce qui suit :

    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. Regénérez le projet.

Exclure les avertissements d’analyse du code

  1. Pour chacun des avertissements restants, procédez comme suit :

    1. Sélectionnez l’avertissement dans la Liste d’erreurs.

    2. Dans le menu du clic droit (menu contextuel), choisissez Supprimer>Dans le fichier de suppression.

  2. Regénérez le projet.

    Le projet est généré sans avertissements ni erreurs.

Analyse du code pour le code managé