如何让 FxCop 拥有与 Visual Studio 代码分析相同的规则集?

Posted

技术标签:

【中文标题】如何让 FxCop 拥有与 Visual Studio 代码分析相同的规则集?【英文标题】:How to get FxCop have the same set of rules as that of Visual Studio Code Analysis? 【发布时间】:2012-03-28 18:26:41 【问题描述】:

昨天我在这里 (FxCop and Code Analysis Rules) 发布了一个关于让 FxCop 运行与代码分析相同的规则的问题,我认为它已经解决了。

但是,似乎没有真正的方法可以让 FxCop 运行与 Visual Studio 2010 的代码分析完全相同的规则集。例如,一旦我的 FxCopCmd 设置一切正常,它就开始对最小推荐规则规则集中表示的规则大喊大叫,如 CA2000。如果我删除它不喜欢的规则,它会运行分析并且一切看起来都很好。 . .除了它真的没有运行相同的规则集!

这对我来说似乎有点疯狂!有没有办法让 FxCop 分析 Visual Studio Code Analysis 可以分析的完全相同的规则集?是否有 .dll 可以添加到规则中进行分析以获取 CA2000 等规则?

【问题讨论】:

【参考方案1】:

VS 代码分析包含一些不包含在独立 FxCop 中的规则。您需要确保 fxcopcmd.exe 可以使用额外的规则程序集。执行此操作的最简单方法是将构建源 FxCop 文件夹的内容替换为 Visual Studio 安装中的内容,因为其中一个规则程序集 (DataflowRules.dll) 使用独立 FxCop 中未包含的分析引擎或者,这取决于一堆其他程序集,这些程序集也包含在 VS 安装文件夹层次结构下的 FxCop 文件夹中。

【讨论】:

这就是我的想法,但是当我从“C:\Program Files (x86)\Microsoft Fxcop 10.0\FxCopCmd.exe”调用 FxCop 切换到“C:\Program Files (x86)\ Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\FxCop\FxCopCmd.exe”它仍然会因额外的规则而窒息。我觉得这样应该可以解决问题,对吧? 我发现了我的问题,我的 FxCop 项目文件没有引用所有规则 dll。我在 中添加了 dll 引用,一切都按预期工作。

以上是关于如何让 FxCop 拥有与 Visual Studio 代码分析相同的规则集?的主要内容,如果未能解决你的问题,请参考以下文章

在 Visual Studio 2008 中将 Fxcop 错误显示为编译错误

如何在 Visual Studio 2008 的整个解决方案上运行 FxCop

适用于 Visual Studio 2012 的 FxCop 12.0

Visual Studio 2013 中的 FxCop 和代码分析

在构建代理上运行代码分析 (FxCop > 10) 而不安装 Visual Studio

Visual Studio 代码分析 (fxCop) 仅在第一次构建后运行