SonarQube 扫描多个 C# 项目(sonar.inclusions 问题)

SonarQube Scan multiple C# project (sonar.inclusions issue)

提问人:FarsoFracico 提问时间:11/17/2023 最后编辑:FarsoFracico 更新时间:11/17/2023 访问量:32

问:

我正在使用 SonarQube 社区版版本 8.9.10 和 MSBuild 的声纳扫描仪 (5.13.0.66756-net5.0)

我有一个文件夹,其中包含多个 C# 项目和一个 .sln 文件,编译通常需要大约 12 秒(在 dotnet clean 之后)。

使用 sonarqube 时,我遇到了非常慢的性能(仅构建时间就超过 1 分钟),因为即使没有更改,似乎每个项目都会被扫描。 为了解决这个问题,我正在尝试使用 sonar.inclusions 来过滤掉要扫描的文件。但是,通过在构建阶段查看日志,似乎会再次检查每个项目是否存在问题,这消耗了大量时间。此外,在正常构建时,似乎一切都会重新编译。

例如,此行位于生成输出中: 声纳:(monocromo.example.API.slmp.csproj) 项目已成功处理

但是,给定的 sonar.inclusions 路径不包括路径 monocromo.example.API.slmp.csproj。那为什么需要扫描呢? 在我的情况下,有什么方法可以加快扫描过程? 非常感谢

更新:

如前所述,我现在将解释有关如何执行扫描的详细信息。一开始,我尝试像使用 Java 一样使用 sonar-scanner,但一条错误消息告诉我安装 MSBuild。现在,为了对项目运行扫描,我执行以下操作:

dotnet sonar-scanner-msbuild-5.13.0.66756-net5.0/SonarScanner.MSBuild.dll begin /k:"project_key" /d:sonar.token="token" /v:1

dotnet build solution.sln

dotnet sonar-scanner-msbuild-5.13.0.66756-net5.0/SonarScanner.MSBuild.dll end /d:sonar.token="token"
C# MSBuild sonarqube-scan

评论

0赞 Filburt 11/17/2023
您能否分享您的 SonarQube 构建任务的(编辑版本)?另外,我想知道您为什么提到但使用 MSBuild 进行扫描。这听起来像是你正在构建两次所有内容。我正在使用 SonarCloud,因此在使用 SonarQube 时可能会有所不同。dotnet clean
0赞 FarsoFracico 11/17/2023
谢谢你的帮助。我习惯于扫描 Java 项目,它非常简单,因为不需要编译。但是,通过像往常一样运行 sonar-scanner,一条错误消息指出我应该使用 MSBuild 执行孔处理,这就是我现在正在尝试执行的操作。但是,我通过做类似的事情来使用它,但我真的不记得我从哪里得到它。这包括在命令行中运行三个命令,因此没有真正的构建任务。可悲的是,我无法切换到声纳云,但现在必须坚持使用这个版本。dotnet SonarScanner.MSBuild.dll begin ...
0赞 Filburt 11/17/2023
好吧,这看起来很熟悉。也许这只是将您的目标平台与 Sonar 扫描仪风格保持一致的问题,以解决您遇到的初始错误。对于我的项目,我在项目依赖项方面也遇到了很多麻烦,MSBuild 需要一些调整来解决这个问题。您的项目目标平台是什么?
0赞 FarsoFracico 11/17/2023
文件夹的每个项目都有 TargetFramework net6.0
1赞 FarsoFracico 11/18/2023
这似乎是完全阻止项目重新编译的唯一方法。谢谢!<SonarQubeExclude>true</SonarQubeExclude>

答: 暂无答案