Omówienie analizy kodu źródłowego
Dotyczy: Visual Studio Visual Studio
dla komputerów Mac
Visual 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:
Analizatory stylów kodu są wbudowane w program Visual Studio. Identyfikator diagnostyczny analizatora lub format kodu to IDExxxx, na przykład IDE0067. 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 lub błędy kompilacji. Aby uzyskać więcej informacji, zobacz Omówienie analizy kodu źródłowego platformy .NET.
Analizatory jakości kodu są teraz dołączone do zestawu .NET 5 SDK i 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.
Możesz zainstalować analizatory zewnętrzne, takie jak StyleCop, Roslynator, XUnit Analyzer iSonar Analyzer jako pakiet NuGet lub rozszerzenie programu Visual Studio.
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.
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):
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.
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.NetAnalyzers
pakietu 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:
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.