2013-10-01 53 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」。我會更新我的答案以涵蓋該方案。 –