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