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
Otwórz program Visual Studio i utwórz nowy projekt z szablonu Biblioteka klas (.NET Framework).
Nadaj projektowi nazwę CodeAnalysisManagedDemo.
Po utworzeniu projektu otwórz plik Class1.cs .
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; } } } }
Zapisz plik Class1.cs.
Analizowanie projektu pod kątem wad kodu
Wybierz projekt CodeAnalysisManagedDemo w Eksplorator rozwiązań.
W menu Project (Projekt) kliknij pozycję Properties (Właściwości).
Zostanie wyświetlona strona właściwości CodeAnalysisManagedDemo.
Wybierz kartę Analiza kodu.
Upewnij się, że opcja Uruchom w kompilacji została wybrana w sekcji Analizatory binarne.
Z listy rozwijanej Aktywne reguły wybierz pozycję Microsoft All Rules (Wszystkie reguły firmy Microsoft).
W menu Plik kliknij pozycję Zapisz wybrane elementy, a następnie zamknij strony właściwości.
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
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.
W Eksplorator rozwiązań wybierz pozycję Pokaż wszystkie pliki.
Rozwiń węzeł Właściwości, a następnie otwórz plik AssemblyInfo.cs .
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 klasydemo
.CA1032: Zaimplementuj standardowe konstruktory wyjątków: Dodaj konstruktor
public demo (String s, Exception e) : base(s, e) { }
do klasydemo
.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 klasydemo
.CA1709: Identyfikatory powinny być poprawnie sprawne: zmień wielkość liter przestrzeni nazw
testCode
naTestCode
.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 klasydemo
.CA2210: Zestawy powinny mieć prawidłowe silne nazwy: Znak "CodeAnalysisManagedDemo" z silnym kluczem nazwy:
W menu Projekt wybierz kolejno pozycje CodeAnalysisManagedDemo Właściwości.
Pojawią się właściwości projektu.
Wybierz kartę Podpisywanie .
Zaznacz pole wyboru Podpisz zestaw.
Na liście Wybierz plik klucza nazwy ciągu wybierz pozycję <Nowy>.
Zostanie wyświetlone okno dialogowe Tworzenie silnego klucza nazwy.
W polu Nazwa pliku klucza wprowadź wartość TestKey.
Wprowadź hasło, a następnie wybierz przycisk OK.
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; } } } }
Ponownie skompiluj projekt.
Wykluczanie ostrzeżeń dotyczących analizy kodu
Dla każdego z pozostałych ostrzeżeń wykonaj następujące czynności:
Wybierz ostrzeżenie na liście błędów.
W menu prawym przyciskiem myszy (menu kontekstowe) wybierz pozycję Pomiń>w pliku pomijania.
Ponownie skompiluj projekt.
Projekt kompiluje się bez żadnych ostrzeżeń ani błędów.
Powiązana zawartość
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla