Upravit

Sdílet prostřednictvím


Nejčastější dotazy k analýze kódu v sadě Visual Studio

Tato stránka obsahuje odpovědi na některé nejčastější dotazy týkající se analýzy kódu založené na platformě .NET Compiler Platform v sadě Visual Studio.

Analýza kódu versus EditorConfig

Mám použít analýzu kódu nebo EditorConfig ke kontrole stylu kódu?

Ručně fungují analýzy kódu a soubory EditorConfig. Když definujete styly kódu v souboru EditorConfig nebo na stránce Možnosti textového editoru, ve skutečnosti konfigurujete analyzátory kódu, které jsou integrované v sadě Visual Studio. Soubory EditorConfig lze použít k povolení nebo zakázání pravidel analyzátoru a také ke konfiguraci balíčků analyzátoru NuGet.

EditorConfig versus sady pravidel

Mám nakonfigurovat analyzátory pomocí sady pravidel nebo souboru EditorConfig?

Sady pravidel a soubory EditorConfig mohou existovat společně a lze je použít ke konfiguraci analyzátorů. Soubory EditorConfig i sady pravidel umožňují povolit a zakázat pravidla a nastavit jejich závažnost.

Soubory EditorConfig ale nabízejí i další způsoby konfigurace pravidel:

Kromě sad pravidel a souborů EditorConfig se některé analyzátory konfigurují pomocí textových souborů označených jako další soubory pro kompilátory C# a VB.

Poznámka:

  • Soubory EditorConfig lze použít pouze k povolení pravidel a nastavení jejich závažnosti v sadě Visual Studio 2019 verze 16.3 a novější.
  • Soubory EditorConfig nelze použít ke konfiguraci starší analýzy, zatímco sady pravidel mohou.

Analýza kódu v buildech kontinuální integrace (CI)

Funguje analýza kódu založená na platformě kompilátoru .NET v sestaveních kontinuální integrace (CI)?

Ano. U analyzátorů nainstalovaných z balíčku NuGet se tato pravidla vynucují v době sestavení, včetně během sestavení CI. Analyzátory používané v buildech CI respektují konfiguraci pravidel ze sad pravidel i souborů EditorConfig. V současné době nejsou analyzátory kódu integrované v sadě Visual Studio k dispozici jako balíček NuGet, takže tato pravidla nejsou vynucovatelná v sestavení CI.

Analyzátory IDE versus StyleCop

Jaký je rozdíl mezi analyzátory kódu IDE sady Visual Studio a analyzátory StyleCop?

Integrované vývojové prostředí sady Visual Studio obsahuje integrované analyzátory, které hledají problémy se stylem kódu i kvalitou. Tato pravidla vám pomůžou používat nové jazykové funkce při jejich zavedení a zlepšení udržovatelnosti kódu. Analyzátory IDE se průběžně aktualizují s každou verzí sady Visual Studio.

Analyzátory StyleCop jsou analyzátory třetích stran nainstalované jako balíček NuGet, který kontroluje konzistenci stylu v kódu. Obecně platí, že pravidla StyleCop umožňují nastavit osobní předvolby základu kódu bez doporučení jednoho stylu nad jiným.

Analyzátory kódu versus starší analýza

Jaký je rozdíl mezi analýzou starší verze a analýzou kódu na platformě .NET Compiler?

Analýza kódu založená na platformě .NET Compiler Platform analyzuje zdrojový kód v reálném čase a během kompilace, zatímco starší analýza analyzuje binární soubory po dokončení sestavení. Další informace najdete v tématu Analýza založená na platformě kompilátoru .NET versus starší analýza.

Analyzátory FxCop versus analyzátory .NET

Jaký je rozdíl mezi analyzátory FxCop a analyzátory .NET?

Analyzátory FxCop i analyzátory .NET odkazují na implementace analyzátoru .NET Compiler Platform (Roslyn) pravidel ca FxCop. Před sadou Visual Studio 2019 16.8 a .NET 5.0 byly tyto analyzátory dodány jako Microsoft.CodeAnalysis.FxCopAnalyzers balíček NuGet. Počínaje sadou Visual Studio 2019 16.8 a .NET 5.0 jsou tyto analyzátory součástí sady .NET SDK. Jsou také k dispozici jako Microsoft.CodeAnalysis.NetAnalyzers balíček NuGet. Zvažte migraci z analyzátorů FxCop na analyzátory .NET.

Zacházení s upozorněními jako s chybami

Můj projekt používá možnost sestavení, aby se s upozorněními zacházeli jako s chybami. Po migraci ze starší analýzy na analýzu zdrojového kódu se teď všechna upozornění analýzy kódu zobrazují jako chyby. Jak tomu můžu zabránit?

Pokud chcete zabránit tomu, aby se upozornění analýzy kódu považovala za chyby, postupujte takto:

  1. Vytvořte soubor .props s následujícím obsahem:

    <Project>
       <PropertyGroup>
          <CodeAnalysisTreatWarningsAsErrors>false</CodeAnalysisTreatWarningsAsErrors>
       </PropertyGroup>
    </Project>
    
  2. Přidejte do souboru projektu .csproj nebo .vbproj řádek pro import souboru .props, který jste vytvořili v předchozím kroku. Tento řádek musí být umístěn před všechny řádky, které importuje soubory .props analyzátoru. Pokud má například váš soubor .props název codeanalysis.props:

    ...
    <Import Project="..\..\codeanalysis.props" Condition="Exists('..\..\codeanalysis.props')" />
    <Import Project="..\packages\Microsoft.CodeAnalysis.NetAnalyzers.5.0.0\build\Microsoft.CodeAnalysis.NetAnalyzers.props" Condition="Exists('..\packages\Microsoft.CodeAnalysis.NetAnalyzers.5.0.0\build\Microsoft.CodeAnalysis.NetAnalyzers.props')" />
    ...
    

Stránka vlastností řešení analýzy kódu

Kde je stránka vlastností Analýza kódu pro řešení?

Stránka vlastností Analýza kódu na úrovni řešení byla odebrána ve prospěch spolehlivější sdílené skupiny vlastností. Pro správu analýzy kódu na úrovni projektu je stránka vlastností Analýza kódu stále k dispozici. (Pro spravované projekty také doporučujeme migrovat ze sad pravidel do EditorConfig pro konfiguraci pravidel.) Pro sdílení sad pravidel napříč více projekty nebo všemi projekty v řešení nebo úložišti doporučujeme definovat skupinu vlastností pomocí vlastnosti CodeAnalysisRuleSet ve sdíleném souboru props/targets nebo v souboru Directory.props/Directory.targets . Pokud nemáte žádné takové běžné výhody nebo cíle, které všechny vaše projekty importují, měli byste zvážit přidání takové skupiny vlastností do souboru Directory.props nebo Directory.targets v adresáři řešení nejvyšší úrovně, který se automaticky importuje do všech souborů projektu definovaných v adresáři nebo jeho podadresáři.