Sonar 扫描仪与 SonarQube Scanner for MSBuild

Sonar scanner vs. SonarQube Scanner for MSBuild

我正在尝试为 C# 代码设置 Sonar 扫描,从文档中我了解到声纳扫描器已被弃用,我必须使用 MSBuild for C#。 但与此同时,我设法 运行 对 C# 代码进行了声纳扫描仪分析,但也遇到了一些问题。所以扫描似乎成功了。

我的问题是:从声纳扫描过渡到 MSBuild 扫描是否值得,为什么? 我问这个是因为进行此更改需要一些精力、时间和资源,如果可能的话,我宁愿节省这些时间和资源。

您在使用 SonarQube Scanner 分析您的 C# 项目时遇到一些问题并不令人震惊。但是你得到了你应该得到的全部吗?

当您使用 SonarQube 扫描仪进行分析时,基本上是一个文件一个文件地分析。因此,每个源文件都是单独分析的,没有关于在其他源文件中定义的类型的任何信息。还有其他差异。例如,partial class 的每个部分也被单独分析。正如您想象的那样,这只能在尽力而为的基础上完成,并且会导致遗漏或不准确的问题。

相比之下,当您使用 Scanner for MsBuild 时,分析会集成到您的构建过程中。因此分析器可以使用编译器可用的所有类型信息。自然地,这会导致很多更准确的问题,代码着色,...

这就是为什么推荐使用 SonarQube Scanner for MSBuild 来分析 .NET 项目。