Partager via


Procédure pas à pas : analyse du code managé pour les erreurs de code

Dans cette procédure pas à pas, vous analysez un projet managé pour détecter les erreurs de code à l'aide de l'outil d'analyse du code.

Cette procédure pas à pas vous guidera tout au long du processus d'utilisation de l'analyse de code pour analyser les assemblys de code managé .NET en conformité avec les règles de conception de Microsoft .NET Framework.

Dans cette procédure pas à pas, vous :

  • Analyser et corriger les avertissements d'erreur de code.

Composants requis

  • Visual Studio Premium.

Créer une bibliothèque de classes

Pour créer une bibliothèque de classes

  1. Dans le menu Fichier de Visual Studio, cliquez sur Nouveau, puis sur Projet.

  2. Dans le volet Types de projets de la boîte de dialogue Nouveau projet, sélectionnez Visual C#.

  3. Sous Modèles, sélectionnez Bibliothèque de classes.

  4. Dans la zone Nom, tapez CodeAnalysisManagedDemo, puis cliquez sur OK.

  5. Après avoir créé le projet, ouvrez le fichier Class1.cs.

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

    //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. Enregistrez le fichier Class1.cs.

Analyser le projet

Pour analyser un projet managé afin de détecter des erreurs 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 des propriétés du projet CodeAnalysisManagedDemo s'ouvre.

  3. Cliquez sur Analysedu code.

  4. Assurez-vous que Activerl'Analyse du Code lors de la Build (définit la constante CODE_ANALYSIS) soit coché.

  5. Dans la liste déroulante Exécuter cet ensemble de règles, 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 ManagedDemo.

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

    Les avertissements de build du projet CodeAnalysisManagedDemo sont signalés dans les fenêtres Analyse du Code et Sortie.

    Si la fenêtre Analyse du Code n'apparaît pas, dans le menu Analyser , choisissez Fenêtres puis Choisir l'Analyse du Code.

Corriger les problèmes liés à l'analyse du code

Pour corriger les violations des règles d'analyse du code

  1. Dans le menu Affichage, cliquez sur Liste d'erreurs.

    Selon le profil de développeur que vous avez choisi, vous devez peut-être pointer sur Autres fenêtres dans le menu Affichage, puis cliquer sur Liste d'erreurs.

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

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

  4. Utilisez le tableau suivant pour corriger les avertissements :

Avertissements

Pour corriger l'avertissement

CA1014 : Marquer les assemblys avec CLSCompliantAttribute : Microsoft.Design : 'demo' doit être marqué avec CLSCompliantAttribute et sa valeur doit être true.

  1. Ajoutez le code usingSystem; au fichier AssemblyInfo.cs.

  2. Ensuite, ajoutez le code [assembly: CLSCompliant(true)] à la fin du fichier AssemblyInfo.cs.

  3. Régénérez le projet.

CA1032 : Implémenter des constructeurs d'exception standard : Microsoft.Design : Ajouter le constructeur suivant à cette classe : public demo(String)

  • Ajoutez le constructeur public demo (String s) : base(s) { } à la classe demo.

CA1032 : Implémenter des constructeurs d'exception standard : Microsoft.Design : Ajouter le constructeur suivant à cette classe : public demo(String, Exception)

  • Ajoutez le constructeur public demo (String s, Exception e) : base(s, e) { } à la classe demo.

CA1032 : Implémenter des constructeurs d'exception standard : Microsoft.Design : Ajoutez le constructeur suivant à cette classe : protected demo(SerializationInfo, StreamingContext)

  1. Ajoutez le code using System.Runtime.Serialization; au début du fichier Class1.cs.

  2. Ensuite, ajoutez le constructeur protected demo (SerializationInfo info, StreamingContext context) : base(info, context) { } to the class demo.

  3. Régénérez le projet.

CA1032 : Implémenter des constructeurs d'exception standard : Microsoft.Design : Ajoutez le constructeur suivant à cette classe : public demo()

  1. Ajoutez le constructeur public demo () : base() { } à la classe demo.

  2. Régénérez le projet.

CA1709 : La casse des identificateurs doit être correcte: Microsoft.Naming : corrigez la casse du nom de l'espace de noms « testCode » en le redéfinissant sur « TestCode ».

  • Remplacez la casse de l'espace de noms testCode par TestCode.

CA1709 : La casse des identificateurs doit être correcte: Microsoft.Naming : corrigez la casse du nom de type « demo » en le redéfinissant sur « Demo ».

  • Remplacez le nom du membre par Demo.

CA1709 : La casse des identificateurs doit être correcte: Microsoft.Naming : corrigez la casse du nom de membre « item » en le redéfinissant sur « Item ».

  • Remplacez le nom du membre par Item.

CA1710 : Les identificateurs doivent être dotés d'un suffixe correct : Microsoft.Naming : Renommez 'testCode.demo' pour qu'il se termine par 'Exception'.

  • Remplacez le nom de la classe et ses constructeurs par DemoException.

CA2210 : Les assemblys doivent porter des noms forts valides : Signez 'ManagedDemo' avec une clé de nom fort.

  1. Dans le menu Projet, cliquez sur Propriétés de ManagedDemo.

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

  2. Cliquez sur Signature.

  3. Activez la case à cocher Signer l'assembly.

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

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

  5. Dans le Nom du fichier de clé, tapez TestKey.

  6. Entrez un mot de passe, puis cliquez sur OK.

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

  8. Régénérez le projet.

CA2237 : Marquer les types ISerializable avec SerializableAttribute : Microsoft.Usage : Ajoutez un attribut [Serializable] au type 'demo' car ce type implémente ISerializable.

  1. Ajoutez l'attribut [Serializable ()] à la classe demo.

  2. Régénérez le projet.

Après avoir effectué les modifications, le fichier Class1.cs doit se présenter comme suit :

//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; } }
    }
}

Exclure les avertissements d'analyse du code

Pour exclure les avertissements d'erreur de code

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

    1. Dans la fenêtre d'Analyse du Code, sélectionnez l'avertissement.

    2. Choisissez Actions, puis choisissez Supprimer le Message, puis choisissez Dans le Fichier de Suppression de Projet.

    Pour plus d'informations, consultez Comment : supprimer des avertissements à l'aide de l'élément de menu

  2. Régénérez le projet.

    Le projet est généré sans avertissement ni erreur.