Skip to content

Roslyn Analyzers (third party)

YoshiRulz edited this page Jul 26, 2025 · 6 revisions

As a reminder, the project files' include graph looks like:

/Common.props
├─ /ExternalProjects/LibCommon.props
│   ├─ /ExternalProjects/FlatBuffers.GenOutput/FlatBuffers.GenOutput.csproj
│   ├─ /ExternalProjects/iso-parser/ISOParser.csproj
│   ├─ /ExternalProjects/NLua/NLua.csproj
│   ├─ /ExternalProjects/PcxFileTypePlugin.HawkQuantizer/PcxFileTypePlugin.HawkQuantizer.csproj
│   └─ /ExternalProjects/AnalyzersCommon.props
│       ├─ /ExternalProjects/BizHawk.Analyzer/BizHawk.Analyzer.csproj
│       │   └─ /ExternalProjects/BizHawk.AnalyzersTests/BizHawk.AnalyzersTests.csproj
│       ├─ /ExternalProjects/BizHawk.SrcGen.ReflectionCache/BizHawk.SrcGen.ReflectionCache.csproj
│       ├─ /ExternalProjects/BizHawk.SrcGen.SettingsUtil/BizHawk.SrcGen.SettingsUtil.csproj
│       └─ /ExternalProjects/BizHawk.SrcGen.VersionInfo/BizHawk.SrcGen.VersionInfo.csproj
├─ /src/MainSlnCommon.props
│   ├─ /src/BizHawk.Common/BizHawk.Common.csproj
│   ├─ ... (other main solution projects)
│   ├─ /src/TestProjects.props
│   │   ├─ /src/BizHawk.Tests/BizHawk.Tests.csproj
│   │   └─ ... (testroms projects)
│   ├─ /src/BizHawk.Bizware.Test/BizHawk.Bizware.Test.csproj
│   └─ /src/MainSlnExecutable.props
│       ├─ /src/BizHawk.Client.DiscoHawk/BizHawk.Client.DiscoHawk.csproj
│       └─ /src/BizHawk.Client.EmuHawk/BizHawk.Client.EmuHawk.csproj
├─ /ExternalProjects/TestromSuiteReportProcessor/TestromSuiteReportProcessor.csproj
└─ /ExternalToolProjects/ExtToolCommon.props
    ├─ /ExternalToolProjects/HelloWorld/HelloWorld.csproj (also imports NET48ExternalToolForm.targets)
    └─ ... (other ext. tools)

/Common.props enables the .NET Analyzers and StyleCop, and imports BizHawk.Analyzer and some third-party Analyzers. See Dependencies for the graph of every project in the main solution.

You can tell the Analyzers are working if ;; is flagged with "MA0037: Remove empty statement".

Note: All Analyzers except StyleCop should run by default. You can enable StyleCop with -p:RunStyleCop=true.

The enabled Analyzers are:

  • .NET SDK
    • Microsoft.CodeAnalysis.NetAnalyzers, docs
    • docs for IDExxxx
    • Nullable polyfill
  • DotNetAnalyzers.DocumentationAnalyzers, docs
  • Menees.Analyzers, docs
  • Meziantou.Analyzer, docs
  • Roslynator.Analyzers, docs
  • StyleCop.Analyzers, docs
  • Microsoft.CodeAnalysis.BannedApiAnalyzers (only enabled in main solution), docs
  • BizHawk.Analyzer
Clone this wiki locally