Přehled analýzy zdrojového kódu

.NET Compiler Platform (Roslyn) kontroluji kód jazyka C# nebo Visual Basic z pohledu problémů se stylem, kvalitou, udržovatelností, návrhem a dalšími problémy. Tato kontrola nebo analýza se provádí během návrhu ve všech otevřených souborech.

Analyzátory lze rozdělit do následujících skupin:

  • Analyzátory stylu kódu jsou integrované do Visual Studio. ID diagnostiky neboli kód pro tyto analyzátory má formát IDExxxx, například IDE0067. Předvolby můžete konfigurovat na stránce možností textového editoru nebo v souboru EditorConfig. Od verze .NET 5.0 jsou analyzátory stylu kódu součástí sady .NET SDK a je možné je striktně vynutit jako upozornění nebo chyby sestavení. Další informace najdete tady.

  • Analyzátory kvality kódu jsou teď součástí sady .NET 5 SDK a ve výchozím nastavení jsou povolené. ID diagnostiky nebo kód pro tyto analyzátory má formát CAxxxx, například CA1822. Další informace najdete v tématu Přehled analýzy kvality kódu .NET.

  • Analyzátory třetích stran je možné nainstalovat jako NuGet nebo jako Visual Studio rozšíření. Analyzátory třetích stran, jako jsou StyleCop, Roslynator, XUnit Analyzersa Sonar Analyzer.

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

Každý analyzátor má jednu z následujících úrovní závažnosti:

Závažnost (Průzkumník řešení) Závažnost (soubor EditorConfig) Chování při sestavení Chování editoru
Chyba error Porušení se zobrazují jako chyby v Seznam chyb a ve výstupu sestavení příkazového řádku a způsobují selhání sestavení. Urážející kód je podtržený červenou podtržení podtrženou podtržení a označeno malým červeným polem v posuvníku.
Upozornění warning Porušení se zobrazují jako upozornění v Seznam chyb a ve výstupu sestavení příkazového řádku, ale nezpůsobují selhání sestavení. Urážející kód je podtržený zelenou podtržení a označeno malým zeleným polem v posuvníku.
Informace suggestion Porušení se zobrazují jako zprávy v Seznam chyb, a ne vůbec ve výstupu sestavení příkazového řádku. Urážející kód je podtržený šedým podtržením a označený malým šedým polem v posuvníku.
Skrytý silent Uživatel je nezviditelněn. Uživatel je nezviditelněn. Diagnostika se ale hlásí diagnostickém modulu integrovaného vývojového prostředí(IDE).
Žádné none Zcela potlačeno. Zcela potlačeno.
Výchozí default Odpovídá výchozí závažnosti pravidla. Pokud chcete zjistit, jaká je výchozí hodnota pravidla, podívejte se do okno Vlastnosti. Odpovídá výchozí závažnosti pravidla.

Pokud analyzátor naškádne pravidla, nahlásil se v editoru kódu (jako podtržení podtržení kódem, který je urážející) a v okně Seznam chyb kódu.

Porušení analyzátoru v Seznam chyb okně

Porušení analyzátoru hlášená v seznamu chyb odpovídají nastavení úrovně závažnosti pravidla. Porušení analyzátoru se také zobrazují v editoru kódu jako podtržení podtržení kódem, který ho uráží. Následující obrázek znázorňuje tři porušení jedné chyby (červená podchytáka), jedno upozornění (zelený squiggle) a jeden návrh — (tři šedé tečky):

V editoru kódu v Visual Studio

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

Porušení analyzátoru a oprava kódu rychlé akce

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

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

Analyzátory je také možné nakonfigurovat tak, aby při psaní kontrolovali kód v době sestavení a v reálném čase. Rozsah živé analýzy kódu můžete nakonfigurovat tak, aby se s spouštěním řešl jenom pro aktuální dokument, všechny otevřené dokumenty nebo celé řešení. Viz Postupy: Konfigurace rozsahu živé analýzy kódu.

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 NuGet balíček. Integrované analyzátory (například IDE0067 a IDE0068) se během sestavování nikdy nespouštěly.

NuGet balíček versus rozšíření VSIX

Analyzátory třetích stran je možné nainstalovat pro každý projekt prostřednictvím NuGet balíčku. Některé jsou také k dispozici Visual Studio rozšíření, v takovém případě se vztahují na jakékoli řešení, které otevřete v Visual Studio. Mezi těmito dvěma metodami instalace analyzátorů existují některé klíčové rozdíly v chování.

Obor

Pokud nainstalujete analyzátory jako Visual Studio, budou platit na úrovni řešení a na všechny instance Visual Studio. Pokud analyzátory nainstalujete jako NuGet, což je upřednostňovaná metoda, vztahují se pouze na projekt, ve kterém byl NuGet nainstalován. V týmových prostředích jsou analyzátory nainstalované jako NuGet balíčky v rozsahu pro všechny vývojáře, kteří pracují na tomto projektu.

Chyby sestavení

Pokud chcete, aby se pravidla vynucovaná v době sestavení, včetně příkazového řádku nebo v rámci sestavení kontinuální integrace (CI), můžete si vybrat jednu z následujících možností:

  • Vytvořte projekt .NET 5.0, který ve výchozím nastavení obsahuje analyzátory v sadě .NET SDK. Analýza kódu je ve výchozím nastavení povolená pro projekty, které cílí na rozhraní .NET 5.0 nebo novější. Analýzu kódu můžete povolit u projektů, které cílí na starší verze rozhraní .NET, nastavením vlastnosti EnableNETAnalyzers na hodnotu true.

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

Následující obrázek ukazuje výstup sestavení příkazového řádku ze sestavení projektu, který obsahuje porušení pravidla analyzátoru:

MSBuild výstupu s porušením pravidla

Závažnost pravidla

Není možné nakonfigurovat závažnost pravidel z analyzátorů, které byly nainstalovány jako Visual Studio rozšíření. Pokud chcete nakonfigurovat závažnost pravidla,nainstalujte analyzátory jako NuGet balíček.

Další kroky

Viz také