我应该使用 FxCop,为啥?

Posted

技术标签:

【中文标题】我应该使用 FxCop,为啥?【英文标题】:Should I use FxCop and why?我应该使用 FxCop,为什么? 【发布时间】:2010-01-27 08:46:22 【问题描述】:

我正在使用 C# .net 和 WPF 开发一个项目。我们正在使用 StyleCop 来帮助为项目带来一致的风格,在禁用一些规则后,我们对它非常满意。但是,我听到人们谈论FxCop,并且这也会为项目带来价值。据我了解,这更多是基于代码结构..?

有人可以告诉我为什么我们应该开始使用 FxCop 的任何具体原因吗? FxCop 将确保我们正确执行的最重要的事情是什么?

【问题讨论】:

也看***.com/questions/1867867 【参考方案1】:

它会检测一些有用的条件并可以改进您的编码风格。我所说的风格不仅仅是指括号放置等等。但是诸如具有公共构造函数的抽象类和许多其他特殊情况的问题。像这样的小事情它会捡起来,一段时间后你会自动完成它们。

用它开始一个新项目很容易,在现有项目中使用它更难,因为它会发现更多问题。值得注意的是,您必须首先配置 FxCop,因为它会指出可能无关紧要的琐碎事情。

【讨论】:

一开始是否所有规则都处于活动状态,然后您可以禁用您不想要的那些?喜欢 StyleCop..?【参考方案2】:

FxCop 适用于已编译的二进制文件,而 StyleCop analyzes the source code directly。

如果有人试图绕过您的 StyleCop 规则,也许您可​​以使用它来检查您发送到 QA/生产环境的编译程序集是否符合您的公司政策。

【讨论】:

你是说它使用许多与 StyleCop 相同的规则,但在编译后的二进制文件上检查这一点? 我的意思是;我虽然 FxCop 也检查了一些完全不同的规则。 是的,因为可用的信息不同;虽然某些规则集对这两种工具都是通用的,但您可以从源代码中获取一些信息,而其他信息只能从程序集中获取。【参考方案3】:

我将它与 CC.NET 结合使用。 这意味着,每次 CC.NET 构建我的项目时,它也会执行 FxCop 分析,这非常方便,因为它:

检测未使用的变量 检测未使用的方法 提示您是否拼错了单词 帮助您提醒您应该将格式提供程序传递给对 ToString() f.i. 的调用

简而言之:它可以帮助您提高代码质量。

【讨论】:

以上是关于我应该使用 FxCop,为啥?的主要内容,如果未能解决你的问题,请参考以下文章

为啥 FxCop 坚持使用 IDisposable 作为结构

为啥 FxCop 给我一个“DoNotCastUnnecessarily”警告?

FxCop 自定义规则文档。为啥找不到我的网址?

为啥 FxCop 将 GC.KeepAlive() 标记为违规?

Jenkins FxCop 错误应该使构建失败

我们应该在 UnitTest 程序集上使用 FxCop 吗?