Procédure pas à pas : Analyse du code managé pour le code défautsWalkthrough: Analyzing managed code for code defects

Dans cette procédure pas à pas, vous allez analyser un projet managé pour détecter les erreurs de code à l’aide de l’outil d’analyse de code.In this walkthrough, you'll analyze a managed project for code defects by using the code analysis tool.

Cette procédure pas à pas vous guide tout au long du processus d’utilisation de l’analyse du code pour analyser les assemblys de code managé .NET pour la conformité avec les règles de conception 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.

Créer une bibliothèque de classesCreate a class library

Pour créer une bibliothèque de classesTo create a class library

  1. Dans le menu Fichier, choisissez Nouveau > Projet.On the File menu, choose New > Project.

  2. Dans le nouveau projet boîte de dialogue, développez installé > Visual C#, puis choisissez Windows Desktop.In the New Project dialog box, expand Installed > Visual C#, and then choose Windows Desktop.

  3. Choisissez le bibliothèque de classes (.NET Framework) modèle.Choose the Class Library (.NET Framework) template.

  4. Dans le nom zone de texte, tapez CodeAnalysisManagedDemo puis cliquez sur OK.In the Name text box, type CodeAnalysisManagedDemo and then click OK.

  5. Une fois que le projet est créé, ouvrez le Class1.cs fichier.After the project is created, open the Class1.cs file.

  6. Remplacez le texte existant dans le fichier Class1.cs par le code suivant :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. Enregistrez le fichier Class1.cs.Save the Class1.cs file.

Analyser le projetAnalyze the project

Pour analyser un projet managé pour détecter les erreurs de codeTo analyze a managed project for code defects

  1. Sélectionnez le projet CodeAnalysisManagedDemo dans l’Explorateur de solutions.Select the CodeAnalysisManagedDemo project in Solution Explorer.

  2. Dans le menu Projet, cliquez sur Propriétés.On the Project menu, click Properties.

    La page de propriétés CodeAnalysisManagedDemo s’affiche.The CodeAnalysisManagedDemo properties page is displayed.

  3. Choisissez le analyse du Code onglet.Choose the Code Analysis tab.

  4. Assurez-vous que l’option activer l’analyse du Code sur la Build est activée.Make sure that Enable Code Analysis on Build is checked.

  5. À partir de la exécuter cet ensemble de règles liste déroulante, sélectionnez toutes les règles Microsoft.From the Run this rule set drop-down list, select Microsoft All Rules.

  6. Sur le fichier menu, cliquez sur enregistrer les éléments sélectionnés, puis fermez les pages de propriétés.On the File menu, click Save Selected Items, and then close the properties pages.

  7. Sur le Build menu, cliquez sur CodeAnalysisManagedDemo Build.On the Build menu, click Build CodeAnalysisManagedDemo.

    Les avertissements de build du projet CodeAnalysisManagedDemo sont affichés dans le liste d’erreurs et sortie windows.The CodeAnalysisManagedDemo project build warnings are shown in the Error List and Output windows.

Corrigez les problèmes d’analyse de codeCorrect the code analysis issues

Pour corriger les violations des règles de code analysisTo correct code analysis rule violations

  1. Sur le vue menu, choisissez liste d’erreurs.On the View menu, choose Error List.

    Selon le profil de développeur que vous avez choisi, vous devrez peut-être pointer vers Windows autres sur le vue menu, puis choisissez liste d’erreurs.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. Dans l’Explorateur de solutions, choisissez afficher tous les fichiers.In Solution Explorer, choose Show All Files.

  3. Développez le nœud Propriétés, puis ouvrez le AssemblyInfo.cs fichier.Expand the Properties node, and then open the AssemblyInfo.cs file.

  4. Utilisez les conseils suivants pour corriger les avertissements :Use the following tips to correct the warnings:

    CA1014 : Marquer les assemblys avec CLSCompliantAttribute: Microsoft.Design : « demo » doit être marqué avec CLSCompliantAttribute et sa valeur doit être true.CA1014: Mark assemblies with CLSCompliantAttribute: Microsoft.Design: 'demo' should be marked with the CLSCompliantAttribute, and its value should be true.

    1. Ajoutez le code using System; dans le fichier AssemblyInfo.cs.Add the code using System; to the AssemblyInfo.cs file.

    2. Ensuite, ajoutez le code [assembly: CLSCompliant(true)] à la fin du fichier AssemblyInfo.cs.Next, add the code [assembly: CLSCompliant(true)] to the end of the AssemblyInfo.cs file.

    CA1032 : Implémenter des constructeurs d’exception standard: Microsoft.Design : ajoutez le constructeur suivant à cette classe : public demo (String)CA1032: Implement standard exception constructors: Microsoft.Design: Add the following constructor to this class: public demo(String)

    1. Ajoutez le constructeur public demo (String s) : base(s) { } à la classe demo.Add the constructor public demo (String s) : base(s) { } to the class demo.

    CA1032 : Implémenter des constructeurs d’exception standard: Microsoft.Design : ajoutez le constructeur suivant à cette classe : public demo (String, Exception)CA1032: Implement standard exception constructors: Microsoft.Design: Add the following constructor to this class: public demo(String, Exception)

    1. Ajoutez le constructeur public demo (String s, Exception e) : base(s, e) { } à la classe demo.Add the constructor public demo (String s, Exception e) : base(s, e) { } to the class demo.

    CA1032 : Implémenter des constructeurs d’exception standard: Microsoft.Design : ajoutez le constructeur suivant à cette classe : protected demo (SerializationInfo, StreamingContext)CA1032: Implement standard exception constructors: Microsoft.Design: Add the following constructor to this class: protected demo(SerializationInfo, StreamingContext)

    1. Ajoutez le code using System.Runtime.Serialization; au début du fichier Class1.cs.Add the code using System.Runtime.Serialization; to the beginning of the Class1.cs file.

    2. Ensuite, ajoutez le constructeur 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 : Implémenter des constructeurs d’exception standard: Microsoft.Design : ajoutez le constructeur suivant à cette classe : public demo()CA1032: Implement standard exception constructors: Microsoft.Design: Add the following constructor to this class: public demo()

    1. Ajoutez le constructeur public demo () : base() { } à la classe demo .Add the constructor public demo () : base() { } to the class demo.

    CA1709 : La casse des identificateurs doivent être correcte: Microsoft.Naming : corrigez la casse du nom de l’espace de noms « testCode » en le redéfinissant sur « TestCode ».CA1709: Identifiers should be cased correctly: Microsoft.Naming: Correct the casing of namespace name 'testCode' by changing it to 'TestCode'.

    1. Modifier la casse de l’espace de noms testCode à TestCode.Change the casing of the namespace testCode to TestCode.

    CA1709 : La casse des identificateurs doivent être correcte: Microsoft.Naming : corrigez la casse du nom de type « demo » en le redéfinissant sur « Demo ».CA1709: Identifiers should be cased correctly: Microsoft.Naming: Correct the casing of type name 'demo' by changing it to 'Demo'.

    1. Modifier le nom du membre à Demo.Change the name of the member to Demo.

    CA1709 : La casse des identificateurs doivent être correcte: Microsoft.Naming : corrigez la casse du nom de membre 'item' changez-la en 'Item'.CA1709: Identifiers should be cased correctly: Microsoft.Naming: Correct the casing of member name 'item' by changing it to 'Item'.

    1. Modifier le nom du membre à Item.Change the name of the member to Item.

    CA1710 : Les identificateurs doivent avoir un suffixe correct: Microsoft.Naming : Renommez 'testCode.Demo qu’il se' pour se terminer par 'Exception'.CA1710: Identifiers should have correct suffix: Microsoft.Naming: Rename 'testCode.demo' to end in 'Exception'.

    1. Modifier le nom de la classe et ses constructeurs à DemoException.Change the name of the class and its constructors to DemoException.

    CA2210 : Les assemblys doivent avoir des noms forts valides: signer 'CodeAnalysisManagedDemo' avec une clé de nom fort.CA2210: Assemblies should have valid strong names: Sign 'CodeAnalysisManagedDemo' with a strong name key.

    1. Sur le projet menu, choisissez CodeAnalysisManagedDemo propriétés.On the Project menu, choose CodeAnalysisManagedDemo Properties.

      Les propriétés de projet s’affichent.The project properties appear.

    2. Choisissez l'onglet Signature .Choose the Signing tab.

    3. Sélectionnez le signer l’assembly case à cocher.Select the Sign the assembly check box.

    4. Dans le choisir un fichier de clé de nom de chaîne liste, sélectionnez <nouveau... >.In the Choose a string name key file list, select <New...>.

      Le créer une clé de nom fort boîte de dialogue s’affiche.The Create Strong Name Key dialog box appears.

    5. Dans le nom de fichier de clé, tapez TestKey.In the Key file name, type TestKey.

    6. Entrez un mot de passe, puis choisissez OK.Enter a password and then choose OK.

    7. Sur le fichier menu, choisissez enregistrer les éléments sélectionnés, puis fermez les pages de propriétés.On the File menu, choose Save Selected Items, and then close the property pages.

    CA2237 : Marquez les types ISerializable avec SerializableAttribute: Microsoft.Usage : ajoutez un attribut [Serializable] au type 'demo' car ce type implémente ISerializable.CA2237: Mark ISerializable types with SerializableAttribute: Microsoft.Usage: Add a [Serializable] attribute to type 'demo' as this type implements ISerializable.

    1. Ajouter le [Serializable ()] à la classe d’attribut demo.Add the [Serializable ()] attribute to the class demo.

    Après avoir terminé les modifications, le fichier Class1.cs doit ressembler à ce qui suit :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. Regénérez le projet.Rebuild the project.

Exclure les avertissements d’analyse du codeExclude code analysis warnings

Pour exclure les avertissements d’erreur de codeTo exclude code defect warnings

  1. Pour chacun des avertissements restants, procédez comme suit :For each of the remaining warnings, do the following:

    1. Sélectionnez l’avertissement dans le liste d’erreurs.Select the warning in the Error List.

    2. Dans le menu contextuel, choisissez supprimer > dans le fichier de Suppression.From the right-click or context menu, choose Suppress > In Suppression File.

  2. Regénérez le projet.Rebuild the project.

    Le projet est généré sans les avertissements ou erreurs.The project builds without any warnings or errors.

Voir aussiSee also

Analyse du code pour le code managéCode analysis for managed code