FxCops对我来说是新鲜事,但一如既往,我想了解新事物...... 据我所读,FxCops已包含在VS2008中。我想这是“代码分析”功能。每当我尝试运行它时,它似乎开始重建并以“完成重建”状态结束 我检查了输出窗口,那里有一堆警告。但是,如果我没有误会,应该有更多的GUI,然后输出窗口中的文本墙,对吧? 我错过了应该弹出的窗口吗?我可以在某个地方打开它吗?或者还有什么我想念的吗?
答案 0 :(得分:3)
是的,Code Analysis是FxCop友好的友好名称。但是,我不知道它们应该出现的错误/警告列表之外的友好窗口,前缀为CA
。
在项目属性屏幕上有一个代码分析选项卡,您可以将警告视为错误,以强制执行您关注的规则。
答案 1 :(得分:2)
你没有遗漏任何东西 - 没有弹出窗口。
输出窗口中的问题列表几乎就是您在FxCop中获得的所有问题。只是FxCop是一个独立的应用程序。
这是关于FxCop和代码分析的一篇不错的文章:
http://geekswithblogs.net/sdorman/archive/2008/08/19/visual-studio-and-code-analysis.aspx
答案 2 :(得分:2)
大家都知道,因为我花了很长时间来解决这个问题....代码分析/ FxCop仅包含在VS 2008的Team System和Team Suite版本中,而不是专业版。
答案 3 :(得分:1)
FxCop的替代方法是使用允许编写Code Rules over C# LINQ Queries (namely CQLinq)的工具NDepend。 NDepend已集成在VS 2012,2010和2008中。免责声明:我是该工具的开发人员之一
默认情况下会提出超过200 code rules的内容。由于众所周知的 C#LINQ语法,自定义现有规则或创建自己的规则非常简单。
NDepend代码规则可以live in Visual Studio在构建过程中验证generated HTML+javascript report。
您似乎对误报的数量感到担忧。为了保持较低的误报率,CQLinq提供了独特的功能,可以通过前缀为 notmycode 的特殊代码查询来定义集合 JustMyCode 的内容。有关此功能的更多说明可以在here找到。以下是两个 notmycode 默认查询:
为了保持较低的误报率,使用CQLinq,您还可以将规则结果仅集中在添加的代码或重构的代码上,因为定义了baseline in the past。请参阅以下规则,该规则检测自基线以来添加或重构过于复杂的方法:
warnif count > 0
from m in Methods
where m.CyclomaticComplexity > 20 &&
m.WasAdded() || m.CodeWasChanged()
select new { m, m.CyclomaticComplexity }