【问题标题】:Is it possible to have Code Analysis warnings formatted like normal ones?是否可以像普通警告一样格式化代码分析警告?
【发布时间】:2013-10-02 22:21:06
【问题描述】:

我喜欢 VS2012 中包含的代码分析。但是有点烦人的是警告只能在代码分析窗口中处理,而不是通过 F4 逐步完成构建输出。

有没有办法克服这个限制?如何像普通编译器输出一样格式化静态代码分析的输出(即不仅打印文件名,还打印被检查文件的正确路径)?

我没有使用 FxCop,因为我使用的是非托管代码。

【问题讨论】:

    标签: visual-studio-2012 code-analysis unmanaged


    【解决方案1】:

    对于非托管代码分析,MSBuild 脚本使用/analyze:quiet 而不是/analyze,以防止将结果写入错误列表。更改行为的最简单方法是修改您的Microsoft.CodeAnalysis.Targets 文件(通常位于C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\CodeAnalysis\Microsoft.CodeAnalysis.Targets)以避免指定安静模式。即:换行

    <AdditionalOptions Condition="'$(PlatformToolsetVersion)'&gt;='110'">%(ClCompile.AdditionalOptions)  /analyze:quiet</AdditionalOptions>
    

    <AdditionalOptions Condition="'$(PlatformToolsetVersion)'&gt;='110'">%(ClCompile.AdditionalOptions)  /analyze</AdditionalOptions>
    

    【讨论】:

    • 忘了说我说的不是 FxCop,而是非托管文件的分析。更新的问题。
    • 它们本质上是一样的。 VS Code Analysis 是 FxCop 引擎的 VS 集成包装器。它使用 MSBuild 任务运行 fxcopcmd.exe 可执行文件以运行分析,CodeAnalysisAdditionalOptions 将命令行选项插入调用。如果您增加 VS 构建输出的详细程度,您将能够在 VS 输出窗口中看到任务生成的完整命令行。
    • 对不起,我完全错过了“非托管”部分。我仍然认为它是“PREfast”。我将更新我的答案以涵盖该场景。
    • 嗯……我发誓这曾经在 VS2013 中也可以工作……现在看来它不工作了。 :-/
    • 这似乎仍然将警告写入输出窗口,但它们只是没有被错误/警告列表拾取。 -- 不知道这里给出了什么。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-24
    • 1970-01-01
    • 2011-08-13
    • 1970-01-01
    相关资源
    最近更新 更多