Ошибка установки FxCop

Я создаю и анализирую образец проекта C # на сервере сборки со следующей конфигурацией:

  • Jenkins 1.630;
  • SonarQube 5.3 со всеми обновлениями;
  • FxCop 10.0

Я поместил следующие шаги в Jenkins Job:

  • Сканер SonarQube для MSBuild - начало анализа
  • Создайте проект или решение Visual Studio с помощью MSBuild (MSBuild 14)
  • Сканер SonarQube для MSBuild - Анализ конца

Если в профиле C # по умолчанию нет правил FxCop, все работает нормально: проект компилируется без предупреждений, а затем анализируется. Если есть хотя бы один FxCop, сборка завершится ошибкой:

V:\JenkinsWkFolder\Test\.sonarqube\bin\targets\SonarQube.Integration.targets(402,5): error : FxCop must be installed when some of its rules are enabled in the SonarQube quality profile. FxCop is included as part of Visual Studio. [V:\JenkinsWkFolder\Test\CSharpConsoleApp\CSharpConsoleApp.csproj]

Done Building Project "V:\JenkinsWkFolder\Test\CSharpConsoleApp\CSharpConsoleApp.csproj" (Rebuild target(s)) -- FAILED.
Done Building Project "V:\JenkinsWkFolder\Test\CITest.sln" (rebuild target(s)) -- FAILED.

Build FAILED.

"V:\JenkinsWkFolder\Test\CITest.sln" (rebuild target) (1) ->
"V:\JenkinsWkFolder\Test\CSharpConsoleApp\CSharpConsoleApp.csproj" (Rebuild target) (2) ->
(FailIfFxCopNotInstalled target) -> 
  V:\JenkinsWkFolder\Test\.sonarqube\bin\targets\SonarQube.Integration.targets(402,5): error : FxCop must be installed when some of its rules are enabled in the SonarQube quality profile. FxCop is included as part of Visual Studio. [V:\JenkinsWkFolder\Test\CSharpConsoleApp\CSharpConsoleApp.csproj]

    0 Warning(s)
    1 Error(s)

FxCop установлен на сервере сборки, а Visual Studio - нет. Где MsBuildSonarRunner ищет исполняемый файл FxCop?

Я не знаю, нужна ли вам какая-либо другая информация, пожалуйста, не стесняйтесь спрашивать более подробную информацию. Заранее спасибо. Наилучшие пожелания,

Марио.


person Mario    schedule 02.02.2016    source источник
comment
FXcop на пути?   -  person Sam Holder    schedule 02.02.2016
comment
Спасибо за ответ, @ sam-holder. Я установил путь FxCop на шаге Среда сборки / Ввести переменные среды в процесс сборки Properties Content: PATH=C:\Program Files (x86)\Microsoft Fxcop 10.0;C:\.... Есть ли какой-либо более глубокий вариант отладки, кроме Additional arguments: /d:sonar.verbose=true в SonarQube Scanner для MSBuild - Начать анализ ?   -  person Mario    schedule 03.02.2016
comment
Я запустил msbuild из командной строки с той же ошибкой. При его выполнении с максимальной степенью детализации (диагностика) возникает подозрительная ошибка: Target SetFxCopAnalysisResult пропущен из-за ложного условия; ($ (SonarQubeRunMSCodeAnalysis) == 'true') был оценен как (== 'true') Проблема, как мне кажется, заключается в ошибке, исходящей из набора правил msbuild, который не имеет ничего общего с установкой fxcop ..   -  person Mario    schedule 03.02.2016


Ответы (1)


SonarQube поддерживает только MSBuild 14 вместе с FxCop 14 (поддержка MSBuild 12 / FxCop 12 скоро будет прекращена).

К сожалению, при установке MSBuild Tools отдельно от VisualStudio FxCop не устанавливается вместе с MSBuild. Чтобы получить FxCop 14, вы должны установить Visual Studio 2015 (FxCop 10 была последней версией, которую можно было установить отдельно). В Интернете вы можете найти способы вручную установить FxCop 14 без VS2015, но это не официальная процедура Microsoft.

person Olivier Korach    schedule 04.02.2016
comment
Дорогой Оливье, спасибо за ответ. Я изо всех сил пытался установить FxCop без Visual Studio (я хочу, чтобы сервер сборки был как можно более легким), но мне пришлось столкнуться со странными ошибками, а также с необходимостью вручную изменить все .csproj, чтобы указать на установку fxcop. Затем я решил избавиться от правил fxcop и заменить их на sonar c # или resharper. Еще раз спасибо. - person Mario; 05.02.2016