В настоящее время мы выполняем анализ SonarQube в процессе сборки. Мы хотели запустить наш профиль качества локально в Visual Studio 2015. Для этого мы создали набор правил для Visual Studio и включили правила, которые были включены в нашем профиле качества. В SonarLint для этого есть интеграция, но правила FxCop не синхронизируются (на данный момент). При включении правил FxCop Visual Studio зависает. Так что это был не вариант для нас.
Другой вариант, который мы попробовали, - это вместо создания набора правил на основе FxCop и Roslyn. Пытался создать набор правил только для roslyn. Итак, мы добавили порт FxCop в правила Roslyn Пакет NuGet для наших проектов. Но когда мы запускали SonarQube с MSBuild Runner 2.1, мы получили следующую ошибку: MSBUILD : error : CA0059 : Invalid settings passed to CodeAnalysis task. See output window for details.
Мы получаем эту ошибку, даже если мы не включали эти правила или не использовали набор правил Microsoft по умолчанию.
Когда я смотрю журнал MSBuild, я вижу следующее (удалено множество правил для удобочитаемости):
/rulesetdirectory:"C:\Program Files (x86)\Microsoft Visual Studio 14.0\Team Tools\Static Analysis Tools\\Rule Sets"
/rule:"-C:\Program Files (x86)\Microsoft Visual Studio 14.0\Team Tools\Static Analysis Tools\FxCop\\Rules"
/ruleid:"-Microsoft.Performance#CA1820"
/ruleid:"-Microsoft.Reliability#CA2002"
/ruleid:"-Microsoft.Usage#CA1816
-Microsoft.Usage#CA2208"
/ruleid:"-Microsoft.Usage#CA2216"
/searchgac /ignoreinvalidtargets
/forceoutput /successfile /ignoregeneratedcode /saveMessagesToReport:Active,Excluded
/timeout:120
/reportMissingIndirectAssemblies
Switch '/microsoft.usage#ca2208" /ruleid' is an unknown switch.
Type 'FxCopCmd.exe /?' for help on command-line arguments.
MSBUILD : error : CA0059 : Invalid settings passed to CodeAnalysis task. See output window for details.
Code Analysis Complete -- 1 error(s), 0 warning(s)
Похоже, что SonarQube неправильно генерирует аргумент FxCop в этой ситуации. Кто-нибудь знает, как исправить эту проблему?
Заранее спасибо.
Я создал репро на GitHub, где можно воспроизвести эту проблему: https://github.com/mvdiemen/SonarQubeFxCopRoslyn а>