2013-10-01 54 views
2

我喜欢VS2012中包含的代码分析。但是有些恼人的是,这些警告只能在代码分析窗口中处理,而不能通过F4单步执行构建输出。是否可以将代码分析警告格式化为正常格式?

有没有办法克服这个限制?我怎样才能像正常的编译器输出那样格式化静态代码分析的输出(即,不仅要打印文件名,还要打印正在检查的文件的正确路径)?

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

回答

3

对于非托管代码分析,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> 
+0

忘了提,我不是在谈论的FxCop但非托管的文件进行分析。更新的问题。 – eckes

+0

它们本质上是同一件事情。 VS Code Analysis是FxCop引擎的VS集成包装器。它使用MSBuild任务来运行'fxcopcmd.exe'可执行文件来运行分析,并且'CodeAnalysisAdditionalOptions'将命令行选项插入到调用中。如果您增加VS编译输出的详细程度,您将能够在VS输出窗口中看到任务生成的完整命令行。 –

+0

对不起,我完全错过了“非托管”部分。我仍然认为它是“PREfast”。我会更新我的答案以涵盖该方案。 –