Следующие проекты не имеют действительного ProjectGuid и не были построены с использованием действительного решения (.sln), поэтому будут пропущены из анализа

При создании основного проекта dotnet с помощью SonarQube вы можете столкнуться с ошибкой в журнале:

ВНИМАНИЕ: Следующие проекты не имеют действительного ProjectGuid и не были построены с использованием правильного решения (.sln), поэтому будут пропущены из анализа...

Что вы должны сделать?

Ответы

Ответ 1

Поскольку в проектах ядра dotnet (.csproj) не будет <ProjectGuid>...</ProjectGuid> указанного в шаблоне по умолчанию, это необходимо добавить вручную.

Поэтому вам нужно отредактировать файл.csproj следующим образом:

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

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

Не забудьте разместить свой собственный GUID внутри <ProjectGuid>...</ProjectGuid>

Ответ 2

Здесь решение для добавления недостающих элементов XML в powershell.

$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)
}