【发布时间】:2016-12-19 04:39:46
【问题描述】:
目前,我们正在构建过程中运行 SonarQube 分析。我们希望在 Visual Studio 2015 中本地运行我们的质量配置文件。为此,我们为 Visual Studio 创建了一个规则集,并打开了在我们的质量配置文件中启用的规则。 SonarLint 对此进行了集成,但 FxCop 规则未同步(目前)。启用 FxCop 规则后,Visual Studio 会冻结。所以这不是我们的选择。
我们尝试过的另一个选项是创建基于 FxCop 和 Roslyn 的规则集。试图创建一个仅 roslyn 的规则集。因此,我们将FxCop port to Roslyn rules NuGet 包添加到了项目中。但是当我们使用 MSBuild Runner 2.1 运行 SonarQube 时,我们收到以下错误: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 repro,可以在其中重现此问题:https://github.com/mvdiemen/SonarQubeFxCopRoslyn
【问题讨论】:
-
你能和我们分享一个最小的工作(失败)复制吗?
-
@Tamas-SonarSourceTeam 我在 Github 上创建了一个 repro,以便可以重现问题。如果您有任何问题或无法重现该问题,请与我联系。提前感谢您的帮助!
-
@Tamas-SonarSourceTeam 是否可以重现该问题?您有(快速)修复如何解决此问题的方法吗?提前致谢
-
抱歉@mrtentje,我还没有时间,但它在我的短期 TODO 清单上。
标签: c# msbuild sonarqube sonarqube-scan sonarlint