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:

  • Analizatory stylów kodu

    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.

  • Analizatory jakości kodu

    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:

Zrzut ekranu przedstawiający naruszenia analizatora w oknie Lista błędów.

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):

Zrzut ekranu przedstawiający znaczniki błędów, ostrzeżeń i sugestii w edytorze kodu.

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.

Zrzut ekranu przedstawiający naruszenie analizatora i poprawkę kodu Szybkie działanie w edytorze kodu.

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.NetAnalyzerspakietu 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:

Zrzut ekranu przedstawiający dane wyjściowe programu MSBuild z naruszeniem reguły w wierszu polecenia dewelopera.

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.

Następne kroki