Udostępnij za pośrednictwem


Przewodnik: znajdowanie wad kodu przy użyciu analizy kodu statycznego

W tym przewodniku przeanalizujesz zarządzany projekt pod kątem wad kodu przy użyciu starszej analizy kodu.

W tym artykule przedstawiono procedurę używania starszej analizy do analizowania zestawów kodu zarządzanego platformy .NET pod kątem zgodności z wytycznymi projektowymi platformy .NET.

Tworzenie biblioteki klas

  1. Otwórz program Visual Studio i utwórz nowy projekt z szablonu Biblioteka klas (.NET Framework).

  2. Nadaj projektowi nazwę CodeAnalysisManagedDemo.

  3. Po utworzeniu projektu otwórz plik Class1.cs .

  4. Zastąp istniejący tekst w Class1.cs następującym kodem:

    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. Zapisz plik Class1.cs.

Analizowanie projektu pod kątem wad kodu

  1. Wybierz projekt CodeAnalysisManagedDemo w Eksplorator rozwiązań.

  2. W menu Project (Projekt) kliknij pozycję Properties (Właściwości).

    Zostanie wyświetlona strona właściwości CodeAnalysisManagedDemo.

  3. Wybierz kartę Analiza kodu.

  4. Upewnij się, że opcja Uruchom w kompilacji została wybrana w sekcji Analizatory binarne.

  5. Z listy rozwijanej Aktywne reguły wybierz pozycję Microsoft All Rules (Wszystkie reguły firmy Microsoft).

  6. W menu Plik kliknij pozycję Zapisz wybrane elementy, a następnie zamknij strony właściwości.

  7. W menu Kompilacja kliknij pozycję Kompiluj kodAnalysisManagedDemo.

    Ostrzeżenia kompilacji projektu CodeAnalysisManagedDemo są wyświetlane w oknach Lista błędów i Dane wyjściowe .

Rozwiązywanie problemów z analizą kodu

  1. W menu Widok wybierz pozycję Lista błędów.

    W zależności od wybranego profilu dewelopera może być konieczne wskazanie pozycji Inne okna w menu Widok , a następnie wybranie pozycji Lista błędów.

  2. W Eksplorator rozwiązań wybierz pozycję Pokaż wszystkie pliki.

  3. Rozwiń węzeł Właściwości, a następnie otwórz plik AssemblyInfo.cs .

  4. Aby poprawić ostrzeżenia, skorzystaj z poniższych wskazówek:

    CA1014: Oznacz zestawy przy użyciu atrybutu CLSCompliantAttribute: Dodaj kod [assembly: CLSCompliant(true)] na końcu pliku AssemblyInfo.cs.

    CA1032: Zaimplementuj standardowe konstruktory wyjątków: Dodaj konstruktor public demo (String s) : base(s) { } do klasy demo.

    CA1032: Zaimplementuj standardowe konstruktory wyjątków: Dodaj konstruktor public demo (String s, Exception e) : base(s, e) { } do klasy demo.

    CA1032: Implementowanie standardowych konstruktorów wyjątków: Dodaj konstruktor protected demo (SerializationInfo info, StreamingContext context) : base(info, context) { } do pokazu klasy. Należy również dodać instrukcję using dla elementu System.Runtime.Serialization.

    CA1032: Zaimplementuj standardowe konstruktory wyjątków: Dodaj konstruktor public demo () : base() { } do klasy demo.

    CA1709: Identyfikatory powinny być poprawnie sprawne: zmień wielkość liter przestrzeni nazw testCode na TestCode.

    CA1709: Identyfikatory powinny być poprawnie przypadek: Zmień nazwę elementu członkowskiego na Demo.

    CA1709: Identyfikatory powinny być poprawnie przypadek: Zmień nazwę elementu członkowskiego na Item.

    CA1710: Identyfikatory powinny mieć poprawny sufiks: Zmień nazwę klasy i jej konstruktorów na DemoException.

    CA2237: Oznacz typy ISerializable za pomocą atrybutu SerializableAttribute: Dodaj [Serializable ()] atrybut do klasy demo.

    CA2210: Zestawy powinny mieć prawidłowe silne nazwy: Znak "CodeAnalysisManagedDemo" z silnym kluczem nazwy:

    1. W menu Projekt wybierz kolejno pozycje CodeAnalysisManagedDemo Właściwości.

      Pojawią się właściwości projektu.

    2. Wybierz kartę Podpisywanie .

    3. Zaznacz pole wyboru Podpisz zestaw.

    4. Na liście Wybierz plik klucza nazwy ciągu wybierz pozycję <Nowy>.

      Zostanie wyświetlone okno dialogowe Tworzenie silnego klucza nazwy.

    5. W polu Nazwa pliku klucza wprowadź wartość TestKey.

    6. Wprowadź hasło, a następnie wybierz przycisk OK.

    7. W menu Plik wybierz pozycję Zapisz wybrane elementy, a następnie zamknij strony właściwości.

    Po zakończeniu wszystkich zmian plik Class1.cs powinien wyglądać następująco:

    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. Ponownie skompiluj projekt.

Wykluczanie ostrzeżeń dotyczących analizy kodu

  1. Dla każdego z pozostałych ostrzeżeń wykonaj następujące czynności:

    1. Wybierz ostrzeżenie na liście błędów.

    2. W menu prawym przyciskiem myszy (menu kontekstowe) wybierz pozycję Pomiń>w pliku pomijania.

  2. Ponownie skompiluj projekt.

    Projekt kompiluje się bez żadnych ostrzeżeń ani błędów.

Analiza kodu zarządzanego