Analiza kodu przy użyciu analizatorów platformy kompilatora .NET (Roslyn)
Analizatory platformy kompilatora .NET (Roslyn) sprawdzają kod języka C# lub Visual Basic pod kątem stylu, jakości, konserwacji, projektowania i innych problemów. Ta inspekcja lub analiza odbywa się w czasie projektowania we wszystkich otwartych plikach.
Analizatory są podzielone na następujące grupy:
-
Te analizatory są wbudowane w program Visual Studio. Identyfikator diagnostyczny analizatora lub format kodu to IDExxxx, na przykład IDE0001. Preferencje można skonfigurować na stronie opcji edytora tekstów lub w pliku EditorConfig. Począwszy od platformy .NET 5.0, analizatory stylu kodu są dołączone do zestawu .NET SDK i mogą być ściśle wymuszane jako ostrzeżenia kompilacji lub błędy. Aby uzyskać więcej informacji, zobacz Omówienie analizy kodu źródłowego platformy .NET.
-
Te analizatory są dołączone do zestawu .NET 5.0 lub nowszego zestawu SDK i są domyślnie włączone. Identyfikator diagnostyczny analizatora lub format kodu to CAxxxx, na przykład CA1822. Aby uzyskać więcej informacji, zobacz Omówienie analizy jakości kodu platformy .NET.
Analizatory zewnętrzne
Przykłady analizatorów zewnętrznych to StyleCop, Roslynator, xUnit Analyzers i Sonar Analyzer. Te analizatory można zainstalować jako pakiet NuGet lub rozszerzenie programu Visual Studio.
Poziomy ważności analizatorów
Każda reguła analizatora Roslyn lub diagnostyka ma domyślną ważność i stan pomijania, który można dostosować dla projektu.
Poziomy ważności obejmują: Błąd, Ostrzeżenie, Sugestia, Dyskretna, Brak i Wartość domyślna. Aby uzyskać szczegółowe informacje i zachowanie, zobacz Konfigurowanie poziomów ważności.
Naruszenia reguł
Jeśli analizator znajdzie jakiekolwiek naruszenia reguł analizatora, zgłasza je w oknie Lista błędów i w edytorze kodu.
Poniższy zrzut ekranu przedstawia naruszenia reguł zgłoszone w oknie Lista błędów. Naruszenia analizatora zgłoszone na liście błędów są zgodne z ustawieniem poziomu ważności reguły:
Naruszenia reguły analizatora są również wyświetlane w edytorze kodu jako wiersze zwijania w kodzie obraźliwym. Na przykład na poniższym zrzucie ekranu przedstawiono trzy naruszenia: jeden błąd (czerwona linia zquiggle), jedno ostrzeżenie (zielona linia zquiggle) i jedna sugestia (trzy szare kropki):
Poprawki kodu
Wiele diagnostyki ma co najmniej jedną skojarzą poprawkę kodu, którą można zastosować w celu skorygowania naruszenia reguły. Poprawki kodu są wyświetlane w menu ikon żarówki wraz z innymi typami szybkich akcji. Aby uzyskać więcej informacji na temat poprawek kodu, zobacz Typowe szybkie akcje.
Konfigurowanie poziomów ważności analizatora
Ważność reguł analizatora można skonfigurować w pliku EditorConfig lub w menu żarówki.
Możesz również skonfigurować analizatory do sprawdzania kodu w czasie kompilacji i podczas pisania. Zakres analizy kodu na żywo można skonfigurować do wykonania tylko dla bieżącego dokumentu, wszystkich otwartych dokumentów lub całego rozwiązania. Aby uzyskać więcej informacji, zobacz Konfigurowanie analizy kodu na żywo dla platformy .NET.
Napiwek
Błędy i ostrzeżenia dotyczące czasu kompilacji z analizatorów kodu są wyświetlane tylko wtedy, gdy analizatory są instalowane jako pakiet NuGet. Wbudowane analizatory (na przykład IDE0067 i IDE0068) nigdy nie są uruchamiane podczas kompilacji.
Instalowanie analizatorów kodu zewnętrznego
Program Visual Studio zawiera podstawowy zestaw analizatorów Roslyn, które są zawsze aktywne. Jeśli potrzebujesz więcej analizatorów kodu, możesz zainstalować analizatory zewnętrzne dla każdego projektu za pośrednictwem pakietu NuGet. Niektóre analizatory są również dostępne jako rozszerzenie vsix programu Visual Studio, w którym przypadku mają zastosowanie do dowolnego rozwiązania otwartego w programie Visual Studio. Aby uzyskać informacje na temat instalowania tych dwóch różnych typów analizatorów, zobacz Instalowanie analizatorów kodu.
Scope
W przypadku instalowania analizatora jako pakietu NuGet preferowana metoda ma zastosowanie tylko do projektu, w którym zainstalowano pakiet NuGet. W przeciwnym razie, jeśli zainstalujesz analizator jako rozszerzenie programu Visual Studio, będzie on stosowany na poziomie rozwiązania i do wszystkich wystąpień programu Visual Studio. W środowiskach zespołowych analizator instalowany jako pakiet NuGet jest przeznaczony dla wszystkich deweloperów, którzy pracują nad tym projektem.
Uwaga
Analizatory pierwszej firmy są dostarczane w ramach zestawu SDK platformy .NET. Zaleca się włączenie tych analizatorów z zestawu .NET SDK zamiast instalowania ich jako Microsoft.CodeAnalysis.NetAnalyzers
pakietu NuGet. Włączenie analizatorów z zestawu .NET SDK gwarantuje, że automatycznie uzyskasz poprawki błędów analizatora i nowe analizatory zaraz po zaktualizowaniu zestawu SDK. Aby uzyskać więcej informacji na temat analizatorów, zobacz Włączanie lub instalowanie analizatorów platformy .NET innych firm.
Błędy kompilacji
Aby wymusić reguły w czasie kompilacji, przy użyciu kompilacji wiersza polecenia lub ciągłej integracji (CI), wybierz jedną z następujących opcji:
Utwórz projekt .NET 5.0 lub nowszy, który domyślnie umożliwia analizę kodu. Aby włączyć analizę kodu dla projektów docelowych wcześniejszych wersji platformy .NET, ustaw właściwość EnableNETAnalyzers na
true
.Zainstaluj analizatory jako pakiet NuGet. Jeśli zainstalujesz analizatory jako rozszerzenie programu Visual Studio, ostrzeżenia analizatora i błędy nie będą wyświetlane w raporcie kompilacji.
Poniższy zrzut ekranu przedstawia dane wyjściowe kompilacji wiersza polecenia z kompilowania projektu zawierającego naruszenie reguły analizatora:
Ważność reguły
Jeśli chcesz skonfigurować ważność reguły analizatora, musisz zainstalować analizator jako pakiet NuGet. Nie można skonfigurować ważności reguły z analizatorów zainstalowanych jako rozszerzenie programu Visual Studio.