2
我喜欢VS2012中包含的代码分析。但是有些恼人的是,这些警告只能在代码分析窗口中处理,而不能通过F4单步执行构建输出。是否可以将代码分析警告格式化为正常格式?
有没有办法克服这个限制?我怎样才能像正常的编译器输出那样格式化静态代码分析的输出(即,不仅要打印文件名,还要打印正在检查的文件的正确路径)?
我没有使用FxCop,因为我使用非托管代码。
我喜欢VS2012中包含的代码分析。但是有些恼人的是,这些警告只能在代码分析窗口中处理,而不能通过F4单步执行构建输出。是否可以将代码分析警告格式化为正常格式?
有没有办法克服这个限制?我怎样才能像正常的编译器输出那样格式化静态代码分析的输出(即,不仅要打印文件名,还要打印正在检查的文件的正确路径)?
我没有使用FxCop,因为我使用非托管代码。
对于非托管代码分析,MSBuild脚本使用/analyze:quiet
而不是/analyze
,以防止将结果写入错误列表。更改行为的最简单方法是修改您的Microsoft.CodeAnalysis.Targets
文件(通常位于C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\CodeAnalysis\Microsoft.CodeAnalysis.Targets
)以避免指定安静模式。即:行
<AdditionalOptions Condition="'$(PlatformToolsetVersion)'>='110'">%(ClCompile.AdditionalOptions) /analyze:quiet</AdditionalOptions>
更改为
<AdditionalOptions Condition="'$(PlatformToolsetVersion)'>='110'">%(ClCompile.AdditionalOptions) /analyze</AdditionalOptions>
忘了提,我不是在谈论的FxCop但非托管的文件进行分析。更新的问题。 – eckes
它们本质上是同一件事情。 VS Code Analysis是FxCop引擎的VS集成包装器。它使用MSBuild任务来运行'fxcopcmd.exe'可执行文件来运行分析,并且'CodeAnalysisAdditionalOptions'将命令行选项插入到调用中。如果您增加VS编译输出的详细程度,您将能够在VS输出窗口中看到任务生成的完整命令行。 –
对不起,我完全错过了“非托管”部分。我仍然认为它是“PREfast”。我会更新我的答案以涵盖该方案。 –