Сбой сборки при попытке запустить сканер 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...