Sonarqube 以下项目没有有效的ProjectGuid,并且不是使用有效的解决方案(.sln)生成的,因此将从分析中跳过

Sonarqube 以下项目没有有效的ProjectGuid,并且不是使用有效的解决方案(.sln)生成的,因此将从分析中跳过,sonarqube,.net-core,Sonarqube,.net Core,当您使用SonarQube构建dotnet核心项目时,您可能会遇到日志中的错误: 警告:以下项目没有有效的ProjectGuid,并且不是使用有效的解决方案(.sln)生成的,因此将从分析中跳过 您应该怎么做?因为dotnet核心项目(.csproj)在默认模板中没有指定的..标记,因此需要手动添加该标记 因此,您需要像这样编辑.csproj文件: <PropertyGroup> <!-- other properties here --> <!-- So

当您使用SonarQube构建dotnet核心项目时,您可能会遇到日志中的错误:

警告:以下项目没有有效的ProjectGuid,并且不是使用有效的解决方案(.sln)生成的,因此将从分析中跳过

您应该怎么做?

因为dotnet核心项目(.csproj)在默认模板中没有指定的
..
标记,因此需要手动添加该标记

因此,您需要像这样编辑.csproj文件:

<PropertyGroup>
  <!-- other properties here -->

  <!-- SonarQube needs this -->
  <ProjectGuid>{E2CEBBAF-6DF7-41E9-815D-9AD4CF90C844}</ProjectGuid>


{E2CEBBAF-6DF7-41E9-815D-9AD4CF90C844}

请确保将自己的GUID放在
标记中

以下是在powershell中添加缺少的xml元素的解决方案

$paths = Get-ChildItem -include *.csproj -Recurse
foreach($pathobject in $paths) 
{
    $path = $pathobject.fullname
    $doc = New-Object System.Xml.XmlDocument
    $doc.Load($path)
    $child = $doc.CreateElement("ProjectGuid")
    $child.InnerText = "{"+[guid]::NewGuid().ToString().ToUpper()+"}"
    $node = $doc.SelectSingleNode("//Project/PropertyGroup")
    $node.AppendChild($child)
    $doc.Save($path)
}

我提出的解决方案是构建解决方案,而不是构建项目文件。如果使用Azure DevOps,请在DotNetCoreCLI构建步骤中使用**/*.sln而不是**/*.csproj。

使用例如创建一个新的GUID,因此此GUID与.sln文件中的GUID之间绝对没有连接。没有连接。Powershell要修复它,请编写主机“{$([guid]::NewGuid().ToString().ToUpper())}”非常感谢您的指导。这是一个非常关键的问题,没有适当的解决办法。我已经检查了所有可能的方法,但没有得到正确的解决方案。应用您的解决方案,我知道此问题属于VS2017。在那之前我感到很无助。再次感谢为我们发布一个非常有用的解决方案。非常感谢!虽然我认为GUID应该包含在{}中以匹配VisualStudio,但也许它还是可以工作的?肯定有助于我的Azure DevOps SonarQube步骤,谢谢分享!谢谢!这为我在Azure DevOpsThank中修复了它谢谢你的分享!这让我用TeamCity和Sonar解决了这个问题