【问题标题】:Visual Studio 2015 Code Analysis vs FxCopCmd.exe differenceVisual Studio 2015 代码分析与 FxCopCmd.exe 的区别
【发布时间】:2015-11-23 15:34:14
【问题描述】:

我最近安装了 Visual Sudio 2015,并且能够使用以下命令运行解决方案的代码分析:

msbuild.exe MySolution.sln /p:RunCodeAnalysis=true

其中/p:RunCodeAnalysis=true 执行代码分析。实际上这调用了位于

中的 FxCopCmd.exe

C:\Program Files(x86)\Microsoft Visual Studio 14.0\Team Tools\Static AnalysisTools\FxCop\FxCopCmd.exe

代码分析是为了取代 FxCop,但实际上代码分析会自行执行 FxCopCmd.exe

也许我错过了什么,但是 VS 代码分析和 FxCop 有什么区别?

【问题讨论】:

    标签: c# msbuild visual-studio-2015 fxcop static-code-analysis


    【解决方案1】:

    FxCop 和 VS 代码分析本质上是一回事。他们使用相同的核心分析引擎(通过fxcopcmd.exe 触发)并附带相同的核心规则集。除了 UI 区别外,FxCop 和 VS 代码分析之间的主要区别在于后者包括一些额外的规则(在 DataflowRules.dllMaintainabilityRules.dllReliabilityRules.dll 程序集中),以及支持这些规则子集的数据流分析引擎附加规则。

    【讨论】:

    • 这是有道理的,但据我所知,当我执行例如:msbuild.exe MySolution.sln /p:RunCodeAnalysis=true(也开始代码分析)时,这实际上启动了C:\Program Files(x86)\Microsoft Visual Studio 14.0\Team Tools\StaticAnalysisTools\FxCop\FxCopCmd.exe 命令。这和直接执行FxCop不一样吗?
    • 不太清楚您在这里问什么... MSBuild 通过自定义 MSBuild 任务启动 fxcopcmd.exe,该任务在 fxcoptask.dll 程序集中定义(您可能会在 C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\CodeAnalysis 中找到)文件夹)。此任务所做的只是通过将 MSBuild 属性转换为命令行开关参数来为 fxcopcmd.exe 构建命令行。如果您愿意,您当然可以手动构建相同的命令行。
    • 这是我想知道的。因此,要么我们通过将<RunCodeAnalysis>true</RunCodeAnalysis> 添加到.csproj 文件来执行代码分析,要么从命令行执行C:\Program Files(x86)\Microsoft Visual Studio 14.0\Team Tools\Static AnalysisTools\FxCop\FxCopCmd.exe 将得到相同的结果。
    猜你喜欢
    • 2017-06-16
    • 1970-01-01
    • 2016-03-31
    • 2010-10-09
    • 2015-11-17
    • 1970-01-01
    • 2017-03-09
    • 2015-10-11
    • 1970-01-01
    相关资源
    最近更新 更多