Rosyln/NetAnayzers/Stylecop 分析器:生成检验报告

问题描述

我们在解决方案中使用 Microsoft.CodeAnalysis.NetAnalyzerStylecop.Analyzer roslyn 分析器来检查代码质量。我们被要求向一些利益相关者提供我们运行这些分析器的证据。不幸的是,我们只会在问题时获得警告/错误列表,但在一切正常时什么也没有。 IE。我需要一份清单,显示所有已执行的检查以及它们通过的检查。

关于如何编写这样的报告有什么想法吗?

(我发现有可能使用 csproj 中的 <ErrorLog> 标记创建一个包含警告/错误文件。但这里有同样的问题 - 我没有得到在成功的情况下执行检查,仅当发现问题时。)

解决方法

您可以使用 CacheErrorHandler 并使用 <ReportAnalyzer>true</ReportAnalyzer> 选项进行编译以生成 binlog。 binlog 包含规则列表(以及每个规则的执行时间)。请注意,它没有显示每个规则的严重性。因此,您还需要检查所有 /bl 文件和 csproj 以获取这些信息(您可以在 binlog 中搜索 .editorconfig)。

https://www.meziantou.net/understanding-the-impact-of-roslyn-analyzers-on-the-build-time.htm