8

FxCops 对我来说是新事物,但我一如既往地想了解新事物。根据我的阅读,FxCops 已经包含在 VS2008 中。我猜这是“代码分析”功能。每当我尝试运行它时,它似乎开始重建并以“完成重建”状态结束。
我检查了输出窗口,那里有一堆警告。但如果我没记错的话,应该有更多的图形用户界面,然后是我的输出窗口中的文本墙,对吧?
我错过了应该弹出的窗口吗?我可以在某个地方打开它吗?还是我还缺少什么?

4

4 回答 4

3

是的,代码分析是 FxCop 的友好名称。但是,我不知道错误/警告列表之外的友好窗口应该出现在哪里,前缀为CA.

在项目属性屏幕上有一个代码分析选项卡,您可以在其中将警告视为错误以强制执行您关心的规则。

于 2008-12-18T08:57:52.080 回答
2

你不会错过任何东西 - 没有弹出窗口。

输出窗口中的问题列表几乎就是您在 FxCop 中获得的所有内容。只是 FxCop 是一个独立的应用程序。

这是一篇关于 FxCop 和代码分析的不错的文章:

http://geekswithblogs.net/sdorman/archive/2008/08/19/visual-studio-and-code-analysis.aspx

于 2008-12-18T08:58:58.927 回答
2

所有人都知道,因为我花了很长时间才弄清楚这一点.... 代码分析/FxCop 仅包含在 VS 2008 的 Team System 和 Team Suite 版本中,不包含在专业版中。

于 2009-02-09T14:58:33.847 回答
1

FxCop 的替代方法是使用 NDepend 工具,该工具允许在 C# LINQ 查询(即 CQLinq)上编写代码规则。NDepend 集成在 VS 2012、2010 和 2008 中。免责声明:我是该工具的开发人员之一

默认提出超过200 条代码规则。借助众所周知的C# LINQ 语法,自定义现有规则或创建自己的规则非常简单。

NDepend 代码规则可以在 Visual Studio 中实时验证,并在生成过程中,在生成的 HTML+javascript 报告中进行验证。

您似乎担心误报的数量。为了保持低误报的数量,CQLinq 提供了独特的功能,可以通过以 notmycode 为前缀的特殊代码查询来定义JustMyCode集合。有关此功能的更多说明,请参见此处。例如,这里有两个notmycode默认查询:

为了保持低误报的数量,使用 CQLinq,您还可以将规则结果集中在添加的代码或重构的代码上,因为过去定义了基线。请参阅以下规则,该规则检测自基线以来添加或重构的过于复杂的方法:

warnif count > 0 
from m in Methods
where m.CyclomaticComplexity > 20 &&
      m.WasAdded() || m.CodeWasChanged()
select new { m, m.CyclomaticComplexity }
于 2008-12-18T16:46:07.363 回答