SonarCloud с VSTS имеет ошибку Duplicate ProjectGuid: 00000000-0000-0000-0000-000000000000

Мы добавили 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"

Структура проекта

введите описание изображения здесь


person Mathias Rönnlund    schedule 27.04.2018    source источник
comment
Вы строите с помощью решения или составляете список проектов?   -  person Amaury Levé    schedule 27.04.2018
comment
Мы строим два проекта в решении ** / MyApp.Web.csproj ** / MyApp.Mobile.Backend.csproj   -  person Mathias Rönnlund    schedule 27.04.2018
comment
Может быть проблема в том, что, например, MyApp.Entities ссылается на MyApp.Web как через MyApp.Core, так и напрямую?   -  person Mathias Rönnlund    schedule 27.04.2018
comment
Задачи сборки Sonar нуждаются в уникальном стабильном идентификаторе для каждого проекта MSBuild, и для этого они используют свойство ‹ProjectGuid›. Однако новый формат MSBuild 15, используемый проектами NETCore, не определяет ProjectGuid, поэтому, если вы создаете файлы .csproj нового стиля напрямую, ProjectGuid будет пустым. Если вы создаете .sln, который ссылается на проекты NETCore, тогда задачи Sonar будут использовать GUID из .sln в качестве идентификаторов проекта. Однако я бы ожидал, что в сообщении об ошибке будет указано отсутствующее руководство, а не дублирование 0000 и т. Д. Какую версию Scanner for MSBuild вы используете?   -  person duncanp    schedule 30.04.2018
comment
@duncanp Как сборка с использованием файла sln помогает сканеру сонара найти направляющие в нужном файле? Например, в моей сборке я запускаю dotnet build TheSolution.sln, который зажат между анализом VSTS Prepare в SonarQube и задачей Run Code Analysis? Как я могу указать сканеру использовать sln для Project Guids?   -  person Travis    schedule 21.06.2018
comment
Тебе это не нужно. Сканер вводит цели в сборку, поэтому при создании каждого .csproj вызываются цели сканера, и они собирают данные о проекте. MSBuild передает информацию о файле решения, поэтому сканер может заглянуть в файл sln, чтобы определить, какой guid использовать для проекта.   -  person duncanp    schedule 21.06.2018


Ответы (1)


  <PropertyGroup>
    <TargetFramework>netstandard2.0</TargetFramework>
     <ProjectGuid>{fc2f0da6-ddfe-67b2-8dae-eb292f55436f}</ProjectGuid>
  </PropertyGroup>

Вам необходимо сделать следующее: - ›Добавить тег или ярлык ProjectGuid к вашим файлам с расширением .csproj с разными Guid для каждого файла.

ПРОСМОТРЕТЬ КОД (этот код не исполняется)

- ›А для создания Guid вы можете сделать это из https://www.guidgenerator.com/online-guid-generator.aspx.

person Sebastian Alvarez Zapata    schedule 17.04.2019
comment
Хотя эта ссылка может дать ответ на вопрос, лучше включить сюда основные части ответа и предоставить ссылку для справки. Ответы, содержащие только ссылки, могут стать недействительными, если ссылка на страницу изменится. - person Zain Arshad; 18.04.2019