web-dev-qa-db-fra.com

Les projets suivants n'ont pas de ProjectGuid valide et n'ont pas été construits à l'aide d'une solution valide (.sln) donc seront ignorés de l'analyse

Lorsque vous créez un projet de base dotnet avec SonarQube, vous pouvez être confronté à l'erreur dans le journal:

AVERTISSEMENT: Les projets suivants n'ont pas de ProjectGuid valide et n'ont pas été construits à l'aide d'une solution valide (.sln) donc seront ignorés de l'analyse ...

Que devrais tu faire?

17
Daniel

Comme les projets centraux dotnet (.csproj) n'auront pas <ProjectGuid>...</ProjectGuid> balise spécifiée dans le modèle par défaut, elle doit être ajoutée manuellement.

Vous devez donc modifier le fichier .csproj comme ceci:

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

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

Assurez-vous de placer votre propre GUID à l'intérieur du <ProjectGuid>...</ProjectGuid> Tag

37
Daniel

Voici une solution pour ajouter les éléments xml manquants dans 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)
}
16
chrisevett