Sdílet prostřednictvím


Analýza kódu pomocí analyzátorů platformy kompilátoru .NET (Roslyn)

Analyzátory platformy kompilátoru .NET (Roslyn) kontrolují styl, kvalitu, udržovatelnost, návrh a další problémy v kódu jazyka C# nebo Visual Basic. Tato kontrola nebo analýza probíhá během návrhu ve všech otevřených souborech.

Analyzátory jsou rozdělené do následujících skupin:

  • Analyzátory stylu kódu

    Tyto analyzátory jsou integrované do sady Visual Studio. ID diagnostiky analyzátoru nebo formát kódu je IDExxxx, například IDE0001. Předvolby můžete nakonfigurovat na stránce možností textového editoru nebo v souboru EditorConfig. Počínaje rozhraním .NET 5.0 jsou analyzátory stylu kódu součástí sady .NET SDK a lze je přísně vynutit jako upozornění nebo chyby sestavení. Další informace najdete v tématu Přehled analýzy zdrojového kódu .NET.

  • Analyzátory kvality kódu

    Tyto analyzátory jsou součástí sady .NET 5.0 a novější sady SDK a ve výchozím nastavení jsou povolené. ID diagnostiky analyzátoru nebo formát kódu je CAxxxx, například CA1822. Další informace najdete v tématu Přehled analýzy kvality kódu .NET.

  • Externí analyzátory

    Mezi příklady externích analyzátorů patří StyleCop, Roslynator, xUnit Analyzers a Sonar Analyzer. Tyto analyzátory můžete nainstalovat jako balíček NuGet nebo rozšíření sady Visual Studio.

Úrovně závažnosti analyzátorů

Každé pravidlo analyzátoru Roslyn nebo diagnostika má výchozí stav závažnosti a potlačení, který můžete přizpůsobit pro svůj projekt.

Mezi úrovně závažnosti patří: Chyba, Upozornění, Návrh, Bezobslužné, Žádné a Výchozí. Podrobné informace a chování naleznete v tématu Konfigurace úrovní závažnosti.

Porušení pravidel

Pokud analyzátor najde porušení pravidel analyzátoru, nahlásí je v okně Seznam chyb a v editoru kódu.

Následující snímek obrazovky ukazuje porušení pravidel hlášená v okně Seznam chyb. Porušení analyzátoru hlášená v seznamu chyb odpovídají nastavení úrovně závažnosti pravidla:

Snímek obrazovky znázorňující porušení analyzátoru v okně Seznam chyb

Porušení pravidel analyzátoru se také zobrazí v editoru kódu jako vlnovky pod kódem pro přesměrování. Na následujícím snímku obrazovky jsou například tři porušení: jedna chyba (červená vlnovka), jedno upozornění (zelená vlnovka) a jeden návrh (tři šedé tečky):

Snímek obrazovky zobrazující značky chyb, upozornění a návrhů v editoru kódu

Opravy kódu

Mnoho diagnostik má jednu nebo více přidružených oprav kódu, které můžete použít k opravě porušení pravidla. Opravy kódu se zobrazují v nabídce ikon žárovky spolu s dalšími typy rychlých akcí. Další informace o opravách kódu najdete v tématu Běžné rychlé akce.

Snímek obrazovky znázorňující porušení analyzátoru a opravu kódu rychlé akce v editoru kódu

Konfigurace úrovní závažnosti analyzátoru

Závažnost pravidel analyzátoru můžete nakonfigurovat v souboru EditorConfig nebo v nabídce žárovky.

Můžete také nakonfigurovat analyzátory pro kontrolu kódu v době sestavení a při psaní. Rozsah živé analýzy kódu můžete nakonfigurovat tak, aby se spustil pouze pro aktuální dokument, všechny otevřené dokumenty nebo celé řešení. Další informace naleznete v tématu Konfigurace živé analýzy kódu pro .NET.

Tip

Chyby a upozornění v době sestavení z analyzátorů kódu se zobrazují jenom v případě, že jsou analyzátory nainstalované jako balíček NuGet. Integrované analyzátory (například IDE0067 a IDE0068) se během sestavování nikdy nespustí.

Instalace externích analyzátorů kódu

Visual Studio obsahuje základní sadu analyzátorů Roslyn, které jsou vždy aktivní. Pokud potřebujete více analyzátorů kódu, můžete nainstalovat externí analyzátory pro každý projekt prostřednictvím balíčku NuGet. Některé analyzátory jsou k dispozici také jako rozšíření Visual Studio .vsix , v takovém případě platí pro jakékoli řešení, které otevřete v sadě Visual Studio. Informace o instalaci těchto dvou různých typů analyzátorů najdete v tématu Instalace analyzátorů kódu.

Obor

Pokud nainstalujete analyzátor jako balíček NuGet, upřednostňovaná metoda se vztahuje pouze na projekt, ve kterém je balíček NuGet nainstalován. Jinak pokud nainstalujete analyzátor jako rozšíření sady Visual Studio, použije se na úrovni řešení a na všechny instance sady Visual Studio. V týmovýchprostředích

Poznámka:

Analyzátory první strany se dodávají v sadě .NET SDK. Je vhodnější povolit tyto analyzátory ze sady .NET SDK místo jejich instalace jako Microsoft.CodeAnalysis.NetAnalyzers balíčku NuGet. Povolením analyzátorů ze sady .NET SDK zajistíte, že budete automaticky dostávat opravy chyb analyzátoru a nové analyzátory hned po aktualizaci sady SDK. Další informace o analyzátorech naleznete v tématu Povolení nebo instalace analyzátorů .NET první strany.

Chyby sestavení

Pokud chcete pravidla vynutit v době sestavení, zvolte pomocí sestavení příkazového řádku nebo kontinuální integrace (CI) jednu z následujících možností:

  • Vytvořte projekt .NET 5.0 nebo novější, který ve výchozím nastavení umožňuje analýzu kódu. Chcete-li povolit analýzu kódu u projektů, které cílí na starší verze .NET, nastavte EnableNETAnalyzers vlastnost .true

  • Nainstalujte analyzátory jako balíček NuGet. Pokud nainstalujete analyzátory jako rozšíření sady Visual Studio, upozornění analyzátoru a chyby se v sestavě sestavení nezobrazí.

Následující snímek obrazovky ukazuje výstup sestavení příkazového řádku z sestavení projektu, který obsahuje porušení pravidla analyzátoru:

Snímek obrazovky znázorňující výstup NÁSTROJE MSBuild s porušením pravidla v příkazovém řádku pro vývojáře

Závažnost pravidla

Pokud chcete nakonfigurovat závažnost pravidla analyzátoru, musíte analyzátor nainstalovat jako balíček NuGet. Závažnost pravidla nemůžete konfigurovat z analyzátorů nainstalovaných jako rozšíření sady Visual Studio.

Další kroky