Сбой сборки при попытке запустить сканер SonarQube для MSBuild на C#

Я пытаюсь проанализировать мой код C# с помощью SonarQube Scanner для MSBuild из командной строки.

Я установил сканер SonarQube для MSBuild 2.2.0.24 ( http://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner+for+MSBuild) и у меня есть все необходимые условия.

Я запускаю следующие команды:

SonarQube.Scanner.MSBuild.exe begin /k:"MyProject" /n:"My Project" /v:"1.0.0.0"

"C:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe" /t:Rebuild

SonarQube.Scanner.MSBuild.exe end

Но когда я запускаю msbuild для своего решения (.Net Framework 4.5.1), сборка завершается неудачно. Решение строится успешно, когда я не выполняю сканирование сонара, поэтому оно должно быть связано с плагином сканера сонара.

В SonarQube.Analysis.xml я предоставил только sonar.host.url, sonar.login и sonar.password.

Это вывод из msbuild:

Build FAILED.

"C:\git\src\MySoltion.sln" (Rebuild target) (1) ->
"C:\git\src\\MyProject\MyProject.csproj" (Rebuild target) (2) ->
"C:\git\src\\MyProject\xxc3zd2a.tmp_proj" (_CompileTemporaryAssembly target) (4) ->
(CoreCompile target) ->
  CSC : error CS0016: Could not write to output file 'C:\git\src\\MyProject\Build\bin\xxc3zd2a\Debug\MyProject.exe
.RoslynCA.json' -- 'Could not find a part of the path 'C:\git\src\\MyProject\Build\bin\xxc3zd2a\Debug\MyProject.ex
e.RoslynCA.json'.' [C:\git\src\MyProject\xxc3zd2a.tmp_proj]

    0 Warning(s)
    1 Error(s)

1 ответ

Решение

Эта проблема была решена путем редактирования файла csproj для основного проекта в нашем решении. Изначально это выглядело так:

<OutputPath>$(BuildOutputPath)\bin\$(MSBuildProjectName)\$(Configuration)</OutputPath>

Но переменная $(MSBuildProjectName), похоже, работала при запуске msbuild во время сканирования сонара, она генерировала
Папкаxxc3zd2a.tmp_proj вместо фактического имени проекта. При замене
$(MSBuildProjectName) с именем проекта, с которым он работал. Наше решение имеет 4 проекта, но я сменил только один из них.

Обратите внимание, что при запуске только msbuild не требуется вносить изменения в файл csproj...

Другие вопросы по тегам