Návod: Použití analýzy statického kódu k vyhledání defektů kódu

V tomto názorném postupu budete analyzovat vady kódu spravovaného projektu pomocí starší verze analýzy kódu.

Tento článek vás provede procesem použití starší verze analýzy k analýze sestavení kódu spravovaných rozhraním .NET, aby byla v souladu s pokyny pro návrh rozhraní .NET.

Vytvoření knihovny tříd

  1. Otevřete Visual Studio a vytvořte nový projekt ze šablony Knihovny tříd (.NET Framework).

  2. Projekt pojmechnte CodeAnalysisManagedDemo.

  3. Po vytvoření projektu otevřete soubor Class1.cs.

  4. Nahraďte existující text ve třídě Class1.cs následujícím kódem:

    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. Uložte soubor Class1.cs.

Analýza defektů kódu v projektu

  1. V části vyberte projekt CodeAnalysisManagedDemo Průzkumník řešení.

  2. V nabídce Project klikněte na Vlastnosti.

    Zobrazí se stránka vlastností CodeAnalysisManagedDemo.

  3. Zvolte kartu Code Analysis.

  1. Ujistěte se, že je Code Analysis při sestavení zaškrtnuté.

  2. V rozevíracím seznamu Run this rule set (Spustit tuto sadu pravidel) vyberte Microsoft All Rules (Všechna pravidla Microsoftu).

  1. Ujistěte se, že v části Binární analyzátory je vybraná možnost Spustit při sestavení.

  2. V rozevíracím seznamu Aktivní pravidla vyberte Všechna pravidla Microsoftu.

  1. V nabídce Soubor klikněte na Uložit vybrané položky a potom zavřete stránky vlastností.

  2. V nabídce Build (Sestavení) klikněte na Build CodeAnalysisManagedDemo (Sestavit kódAnalysisManagedDemo).

    Upozornění sestavení projektu CodeAnalysisManagedDemo se zobrazují v oknech Seznam chyb a Výstup.

Oprava problémů s analýzou kódu

  1. V nabídce Zobrazení zvolte Seznam chyb.

    V závislosti na profilu vývojáře, který jste zvolili, možná budete muset v nabídce Windows odkazovat na Jiné a pak zvolit Seznam chyb.

  2. V Průzkumník řešení vyberte Zobrazit všechny soubory.

  3. Rozbalte uzel Vlastnosti a pak otevřete soubor AssemblyInfo.cs.

  4. K opravě upozornění použijte následující tipy:

    CA1014: Označte sestavení pomocí CLSCompliantAttribute:Přidejte kód na [assembly: CLSCompliant(true)] konec souboru AssemblyInfo.cs.

    CA1032: Implementujte standardní konstruktory výjimek:Přidejte konstruktor public demo (String s) : base(s) { } do třídy demo .

    CA1032: Implementujte standardní konstruktory výjimek:Přidejte konstruktor public demo (String s, Exception e) : base(s, e) { } do třídy demo .

    CA1032: Implementujte standardní konstruktory výjimek:Přidejte konstruktor protected demo (SerializationInfo info, StreamingContext context) : base(info, context) { } do ukázky třídy. Budete také muset přidat příkaz using pro System.Runtime.Serialization .

    CA1032: Implementujte standardní konstruktory výjimek:Přidejte konstruktor public demo () : base() { } do třídy demo .

    CA1709: U identifikátorů by se mělasprávně zališovat velká a malá písmena: Změňte velká a malá písmena oboru testCode názvů na TestCode .

    CA1709: Identifikátory by měly být správněrozlišovány jako malá a velká písmena: Změňte název členu na Demo .

    CA1709: Identifikátory by měly být správněrozlišovány jako malá a velká písmena: Změňte název členu na Item .

    CA1710: Identifikátory by měly mít správnou příponu:Změňte název třídy a jejích konstruktorů na DemoException .

    CA2237: Označte typy ISerializable pomocí SerializableAttribute:Přidejte [Serializable ()] atribut do třídy demo .

    CA2210: Sestavení by mělamít platné silné názvy: Sign 'CodeAnalysisManagedDemo' with a strong name key:

    1. V Project zvolte Vlastnosti CodeAnalysisManagedDemo.

      Zobrazí se vlastnosti projektu.

    2. Zvolte kartu Podepisování.

    3. Zaškrtněte políčko Podepisovat sestavení.

    4. V seznamu Choose a string name key file (Zvolit soubor klíče názvu řetězce) vyberte <New> .

      Zobrazí se dialogové okno Create Strong Name Key (Vytvořit klíč silného názvu).

    5. Jako Název souboru klíče zadejte TestKey.

    6. Zadejte heslo a pak zvolte OK.

    7. V nabídce File (Soubor) zvolte Save Selected Items (Uložit vybrané položky) a potom zavřete stránky vlastností.

    Po dokončení všech změn by soubor Class1.cs měl vypadat takto:

    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. Znovu sestavte projekt.

Vyloučení upozornění analýzy kódu

  1. Pro každé ze zbývajících upozornění proveďte následující:

    1. V okně vyberte upozornění Seznam chyb.

    2. V místní nabídce (místní nabídce) klikněte pravým tlačítkem a zvolte Suppress In Suppression File (Potlačit v > souboru potlačení).

  2. Znovu sestavte projekt.

    Projekt se sestaví bez jakýchkoli upozornění nebo chyb.

Viz také

Analýza kódu pro spravovaný kód