【发布时间】:2019-04-18 05:19:17
【问题描述】:
我们将 SonarCloud 添加到大型解决方案的构建管道中。我们的解决方案中只分析了一个项目,但我们看到了这个警告
警告:以下项目没有有效的 ProjectGuid,并且不是使用有效的解决方案 (.sln) 构建的,因此将从分析中跳过...
D:\a\1\s\MyApp\MyApp.Entities\MyApp.Entities.csproj, D:\a\1\s\MyApp\MyApp.Core\MyApp.Core.csproj, D:\a\1\s \MyApp\MyApp.Mobile.Backend\MyApp.Mobile.Backend.csproj, D:\a\1\s\MyApp\MyApp.Entities\MyApp.Entities.csproj, D:\a\1\s\MyApp\MyApp .Core\MyApp.Core.csproj, D:\a\1\s\MyApp\MyApp.Web\MyApp.Web.csproj
警告:重复的 ProjectGuid:“00000000-0000-0000-0000-000000000000”。 SonarQube 不会分析该项目。项目文件:“D:\a\1\s\MyApp\MyApp.Entities\MyApp.Entities.csproj”
警告:重复的 ProjectGuid:“00000000-0000-0000-0000-000000000000”。 SonarQube 不会分析该项目。项目文件:“D:\a\1\s\MyApp\MyApp.Core\MyApp.Core.csproj”
警告:重复的 ProjectGuid:“00000000-0000-0000-0000-000000000000”。 SonarQube 不会分析该项目。项目文件:“D:\a\1\s\MyApp\MyApp.Mobile.Backend\MyApp.Mobile.Backend.csproj”
警告:重复的 ProjectGuid:“00000000-0000-0000-0000-000000000000”。 SonarQube 不会分析该项目。项目文件:“D:\a\1\s\MyApp\MyApp.Web\MyApp.Web.csproj”
项目结构是
【问题讨论】:
-
您是使用解决方案构建还是构建项目列表?
-
我们正在解决方案中构建两个项目**/MyApp.Web.csproj **/MyApp.Mobile.Backend.csproj
-
问题可能出在例如MyApp.Entities 通过 MyApp.Core 和直接由 MyApp.Web 引用?
-
Sonar 构建任务需要每个 MSBuild 项目的唯一稳定 ID,并且它们为此使用
属性。但是,NETCore 项目使用的新 MSBuild 15 格式未指定 ProjectGuid,因此如果您直接构建新样式的 .csproj 文件,则 ProjectGuid 将为空。如果您正在构建一个引用 NETCore 项目的 .sln,那么 Sonar 任务将使用 .sln 中的 GUID 作为项目的标识符。但是,我希望错误消息说“缺少 guid”而不是“重复 0000 等”。您使用的是哪个版本的 Scanner for MSBuild? -
@duncanp 使用 sln 文件构建如何帮助声纳扫描仪在正确的文件中找到 guid?例如,在我的构建中,我运行“dotnet build TheSolution.sln”,它夹在 VSTS“准备 SonarQube 分析”和“运行代码分析”任务之间?如何告诉扫描仪将 sln 用于项目指南?
标签: c# asp.net sonarqube sonarcloud