Visual Studio 2013 中的 FxCop 和代码分析

Posted

技术标签:

【中文标题】Visual Studio 2013 中的 FxCop 和代码分析【英文标题】:FxCop and Code Analysis in Visual Studio 2013 【发布时间】:2015-08-04 06:10:01 【问题描述】:

我想在我的项目中进行代码分析,我正在使用 Visual Studio 2013。我可以看到一个 Analyze 选项卡,它有助于进行代码分析。所以我的问题如下

我应该安装 FxCop 还是应该继续使用 Visual Studio 的内置代码分析? 除了 Visual Studio 的代码分析之外,FxCop 是否提供其他优势?

刚刚在这里找到一个帖子,但我不确定是否使用Fxcop?

http://michaelsync.net/2014/07/19/status-of-fxcop-code-analysis

【问题讨论】:

【参考方案1】:

(免责声明:我曾在 Microsoft 的 Visual Studio 工作,但不在 C# 或 CIL/FxCop 团队工作,我对他们的工作一无所知)

我的理解是,Visual Studio 2013 中的代码分析引擎(在分析菜单下)与 FxCop 中使用的引擎基本相同,除了内置于 Visual Studio 和 MSBuild(这使得构建分析更容易自动化)。 VS2013 使用旧的“手写”原生 C# 和 VB.NET 编译器。

Visual Studio 2015(“VS 14”)使用新的“Roslyn”编译器集,其分析引擎有所不同。您链接到的博客文章清楚地说明了这一点:

我们正在通过使用 Roslyn 重新实现高价值、低误报的 FxCop 规则来证明我们新的基于 Roslyn 的诊断。我们尚未决定何时拉动开关并正式将基于 IL 的 FxCop 规则替换为基于 Roslyn 构建的规则,但新的实时分析引擎将内置到 VS “14”中的 C#/VB 编译器中

...据此,据说 VS2015 包含旧的 FxCop 规则除了新的基于 Roslyn 的规则,但不太可靠的基于 FxCop CIL 的规则已被 Roslyn 规则取代。

【讨论】:

以上是关于Visual Studio 2013 中的 FxCop 和代码分析的主要内容,如果未能解决你的问题,请参考以下文章

Visual Studio 2013 中的默认模板项目崩溃

克服 Visual Studio 2013 中的 decltype 问题

Visual Studio 2013 中的“无法导入 ActiveX 控件”

Visual Studio 2013 中的 LoadTestException 错误

Visual Studio 2013 中的 Resharper 8.0

C++ 中的溢出数字 (Visual Studio 2013)