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 中的 decltype 问题
Visual Studio 2013 中的“无法导入 ActiveX 控件”
Visual Studio 2013 中的 LoadTestException 错误