Omówienie analizy kodu źródłowego

Dotyczy:yes Visual Studio Visual Studio nodla komputerów Mac noVisual Studio Code

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:

Poziomy ważności analizatorów

Każdy analizator ma jeden z następujących poziomów ważności:

Ważność (Eksplorator rozwiązań) Ważność (plik EditorConfig) Zachowanie w czasie kompilacji Zachowanie edytora
Błąd error Naruszenia są wyświetlane jako błędy na liście błędów i w danych wyjściowych kompilacji wiersza polecenia i powodują niepowodzenie kompilacji. Obraźliwy kod jest podkreślony czerwonym wywijakiem i oznaczony małym czerwonym polem na pasku przewijania.
Ostrzeżenie warning Naruszenia są wyświetlane jako ostrzeżenia na liście błędów i w danych wyjściowych kompilacji wiersza polecenia, ale nie powodują niepowodzenia kompilacji. Obraźliwy kod jest podkreślony zielonym wywijakiem i oznaczony małym zielonym polem na pasku przewijania.
Info suggestion Naruszenia są wyświetlane jako komunikaty na liście błędów, a nie w ogóle w danych wyjściowych kompilacji wiersza polecenia. Obraźliwy kod jest podkreślony szarym wywijakiem i oznaczonym małym szarym polem na pasku przewijania.
Ukryty silent Niewidoczne dla użytkownika. Niewidoczne dla użytkownika. Diagnostyka jest jednak zgłaszana do aparatu diagnostycznego IDE.
Brak none Całkowicie pominięto. Całkowicie pominięto.
Domyślny default Odpowiada domyślnej ważności reguły. Aby określić, jaka jest wartość domyślna reguły, zapoznaj się z oknem Właściwości. Odpowiada domyślnej ważności reguły.

Jeśli naruszenia reguł zostaną znalezione przez analizatora, są one zgłaszane w edytorze kodu jako wywijanie w kodzie obraźliwym i w oknie Lista błędów.

Analyzer violation in Error List window

Naruszenia analizatora zgłoszone na liście błędów są zgodne z ustawieniem poziomu ważności reguły. Naruszenia analizatora są również wyświetlane w edytorze kodu jako wywijania w kodzie obraźliwym. Na poniższej ilustracji przedstawiono trzy naruszenia — jeden błąd (czerwony wywiórek), jedno ostrzeżenie (zielony wywiórek) i jedną sugestię (trzy szare kropki):

Squiggles in the code editor in Visual Studio

Wiele reguł analizatora lub diagnostyka ma co najmniej jedną powiązaną poprawkę kodu , którą można zastosować w celu skorygowania naruszenia reguły. Poprawki kodu są wyświetlane w menu ikony żarówki wraz z innymi typami szybkich akcji. Aby uzyskać informacje na temat tych poprawek kodu, zobacz Typowe szybkie akcje.

Analyzer violation and Quick Action code fix

Konfigurowanie poziomów ważności analizatora

Ważność reguł analizatora lub diagnostykę można skonfigurować w pliku EditorConfig lub w menu żarówki.

Analizatory można również skonfigurować do inspekcji kodu w czasie kompilacji i na żywo podczas wpisywania. Zakres analizy kodu na żywo można skonfigurować do wykonania tylko dla bieżącego dokumentu, wszystkich otwartych dokumentów lub całego rozwiązania. Zobacz Instrukcje: konfigurowanie zakresu analizy kodu na żywo.

Porada

Błędy i ostrzeżenia 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.

Pakiet NuGet a rozszerzenie VSIX

Analizatory zewnętrzne dla każdego projektu można zainstalować za pośrednictwem pakietu NuGet. Niektóre z nich są również dostępne jako rozszerzenie programu Visual Studio, w tym przypadku mają zastosowanie do dowolnego rozwiązania otwartego w programie Visual Studio. Istnieją pewne kluczowe różnice między tymi dwiema metodami instalowania analizatorów.

Zakres

Jeśli instalujesz analizatory jako rozszerzenie programu Visual Studio, mają zastosowanie na poziomie rozwiązania i do wszystkich wystąpień programu Visual Studio. W przypadku zainstalowania analizatorów jako pakietu NuGet, który jest preferowaną metodą, mają zastosowanie tylko do projektu, w którym zainstalowano pakiet NuGet. W środowiskach zespołowych analizatory zainstalowane jako pakiety NuGet są w zakresie dla wszystkich deweloperów , którzy pracują nad tym projektem.

Uwaga

Analizatory pierwszej firmy są również dostarczane wewnątrz zestawu .NET SDK. Zaleca się włączenie tych analizatorów z zestawu .NET SDK zamiast instalowania Microsoft.CodeAnalysis.NetAnalyzerspakietu NuGet, jeśli to możliwe. Włączenie analizatorów z zestawu SDK platformy .NET gwarantuje, że automatycznie uzyskasz poprawki błędów analizatora i nowe analizatory zaraz po zaktualizowaniu zestawu SDK. Aby uzyskać więcej informacji, zobacz Włączanie lub instalowanie analizatorów platformy .NET innych firm .

Błędy kompilacji

Aby wymusić reguły w czasie kompilacji, które obejmują za pośrednictwem wiersza polecenia lub w ramach kompilacji ciągłej integracji ( CI), wybierz jedną z następujących opcji:

  • Utwórz projekt .NET 5.0 lub nowszy, który domyślnie zawiera analizatory w zestawie SDK platformy .NET. Analiza kodu jest domyślnie włączona dla projektów przeznaczonych dla platformy .NET 5.0 lub nowszej. Możesz włączyć analizę kodu w projektach docelowych starszych wersji platformy .NET, ustawiając właściwość EnableNETAnalyzers na true.

  • Zainstaluj analizatory jako pakiet NuGet. Ostrzeżenia i błędy analizatora nie są wyświetlane w raporcie kompilacji, jeśli zainstalujesz analizatory jako rozszerzenie.

Na poniższej ilustracji przedstawiono dane wyjściowe kompilacji wiersza polecenia z tworzenia projektu zawierającego naruszenie reguły analizatora:

MSBuild output with rule violation

Ważność reguły

Nie można skonfigurować ważności reguł z analizatorów zainstalowanych jako rozszerzenie programu Visual Studio. Aby skonfigurować ważność reguły, zainstaluj analizatory jako pakiet NuGet.

Następne kroki

Zobacz też