我以前在 Visual Studio 的项目中使用过 StyleCop + FxCop。但是现在我在测试Visual Studio代码分析工具,它更容易集成到MSBuild中,我发现这个工具分析了FxCop和StyleCop的一些规则。
这个工具是完全替代 FxCop 和 StyleCop 还是只是实现了它们的一些规则?
我以前在 Visual Studio 的项目中使用过 StyleCop + FxCop。但是现在我在测试Visual Studio代码分析工具,它更容易集成到MSBuild中,我发现这个工具分析了FxCop和StyleCop的一些规则。
这个工具是完全替代 FxCop 和 StyleCop 还是只是实现了它们的一些规则?
Visual Studio 包括 FxCop + 更多。
来自FxCop 的开发者博客:
抱歉我的无知,但我认为 FxCop 与 VSTS 中的代码分析完全分开?更具体地说,我假设如果我安装新版本的 FxCop,VSTS 不会利用(没有共享代码?)?如果是这种情况,是否知道这些更改何时会进入 VSTS 代码分析?谢谢!
没错,它们是不同的产品,但它们确实有一个共同的引擎。Visual Studio 2008 SP1 已经提供了相同的修复和分析(加上更多),因此无需使用最新的 FxCop 来“更新”Visual Studio。
开发者博客还给出了每个规则中的确切规则。
至于 StyleCop,它独立于 VS 代码分析,如本文所述,该博客文章链接到Jader Dias 的文章。
我的理解是,Visual Studio Code Analysis 基本上是 FxCop 的略微修改版本。根据我的经验,它们几乎是一回事(事实上,我相信代码分析在幕后使用 FxCop 可执行文件)。
虽然 FxCop/CodeAnalysis 和 StyleCop 有重叠;FxCop 倾向于更多地关注设计规则,而 StyleCop 更关注编码风格(大小写、空白、缩进等)。
FxCop 分析 IL 而 StyleCop 直接分析源代码。这对它们各自可以执行的规则施加了一组不同的限制。
到目前为止,我的谷歌搜索得到了以下答案:
http://blogs.msdn.com/bharry/archive/2008/07/19/clearing-up-confusion.aspx
状态:
“我们发现 StyleCop 实际上是一个非常有用的工具,它完成了 FxCop 和 TeamDev 不做的事情(而且它不做他们所做的事情)。它是一个很好的补充工具。StyleCop 是一个工具进行编码样式检查以验证源代码是否按照您想要的方式格式化并遵循约定的样式指南。虽然与 FxCop 有一些重叠(如检查标识符大小写),但重叠是微不足道的,因为 StyleCop 没有进行深入分析其他静态分析工具可以启用代码正确性检查、安全检查等。”
但我不确定“TeamDev”是否与“Visual Studio 的代码分析”相同