为什么在 Azure DevOps 中执行 SonarQube 代码分析之前必须先构建项目?

Why should we have to build the project first before executing the SonarQube code analysis in Azure DevOps?

我只是想知道为什么在 Azure DevOps 中执行 SonarQube 代码分析之前必须先构建 (MSBuild) 项目? 如果我们不先构建项目,它会抛出类似

的错误
Post-processing started.
##[error]11:17:23.752  The SonarScanner for MSBuild integration failed: SonarQube was unable to collect the required information about your projects.
Possible causes:
  1. The project has not been built - the project must be built in between the begin and end ste

这是强制集成 SQ 的吗?有没有办法绕过这个,我的意思是我只是想 运行 代码分析。

SonarQube 不仅仅对您的源代码进行静态分析。它需要一些构建工件来进行完整的分析。

例如,如果没有 运行 单元测试生成的数据文件,SonarQube 无法报告单元测试覆盖率。显然,您不能 运行 在不编译代码的情况下进行单元测试。

一些语言分析工具还需要编译文件,以补充或代替源代码文件。

除了 David M. Karr, in the specific case of the C# and VB.NET the Sonar analysis rules are implemented as Roslyn 分析器提出的观点之外,这意味着它们作为构建的一部分由编译器执行。没有构建,没有分析。

SonarCloud 有一个名为 AutoScan 的功能,它为某些语言提供免构建分析,但目前不支持 C#。