2016-09-22 81 views
1

我想使用一些靜態分析NuGet庫(StyleCop,RefactorEssentials),並且爲了執行規則,我想使用「將警告視爲錯誤」項目級別選項。msbuild忽略靜態代碼分析錯誤

我還需要在使用MSBuild構建解決方案時具有相同的行爲。 我測試了這樣的設置,並且在Visual Studio 2015中構建失敗,但是 我無法獲得與MSBuild相同的行爲。

我試圖運行以下MSBuild命令:MSBuild test.sln /t:clean,build /p:RunCodeAnalysis=true但構建提供了0個警告和錯誤。 此外,在使用上面的MSBuild命令構建解決方案後,即使錯誤仍然存​​在並在「錯誤列表」視圖中報告,Visual Studio也會報告成功構建。由於分析器錯誤,我必須在Visual Studio中重新構建解決方案以使其再次失敗。

任何想法爲什麼我有這種行爲,我該怎麼做才能從MSBuild中獲得相同的行爲?

回答

0

原因是你沒有指定Configuration和Platform,VS和MSBuild工具之間的配置和平臺是不同的,所以代碼分析規則是不同的。

RunCodeAnalysis參數用於啓用代碼分析並使用特定規則運行代碼分析(項目屬性=>代碼分析,不同的配置和平臺具有不同的設置)。通過這種方式,您可以在項目文件(PropertyGroup)中添加true屬性,或者直接爲MSbuild命令指定該參數。

對於StyleCop的代碼分析:

  1. 安裝stylecop.MSbuild
  2. (款待韋林氏作爲誤差)添加<StyleCopTreatErrorsAsWarnings>false</StyleCopTreatErrorsAsWarnings>到的項目文件的PropertyGroup或直接指定該參數爲MSBuild的命令

另外設置Build(項目屬性)也基於Configuration和Platform。

+0

謝謝,是作品。有關步驟2的更多信息,請訪問http://sarangasl.blogspot.ro/2015/06/configure-stylecop-with-msbuild-to.html – user3651902