2009-08-11 92 views
4

我們有15個項目的解決方案,所有項目都啓用了代碼分析。如何在構建期間抑制靜態代碼分析?

該解決方案很容易需要60多秒的時間來構建,這是坐等待很長一段時間。

如果我禁用代碼分析它建立在10 sesonds。

我希望能夠在臨時基礎上禁用代碼分析。但是我仍然希望在簽入之前構建代碼分析,並且我希望我們的構建服務器(Cruise Control)能夠在啓用代碼分析的情況下繼續運行。

我更喜歡如果代碼分析從Visual Studio中運行,所以如果出現錯誤/警告,我可以直接跳轉到源代碼。

回答

9

下面是我們如何做到這一點:

  • 禁用(或者說:不用啓用)代碼分析(CA)的調試版本。
  • 創建一個新的生成配置,稱爲驗證在哪裏啓用代碼分析,並將警告視爲錯誤。
  • Keep Release按原樣構建。

我們盡在調試模式下正常發展,只是有你在檢查之前,你必須通過驗證建立一個非正式的規則。

這是很容易忘記,但我們運行持續集成(CI ),因此如果您檢查具有代碼分析警告的代碼,則會破壞構建 - 因此人們很快會在檢入之前學會執行手動驗證構建:)

您也可以使用Debug without CA和CA一起發佈,但是由於啓用CA定義了CODE_ANALYSIS常量,這意味着CA Suppressions將包含在IL中,並且我不希望在我的Re中包含CA Suppresses租賃二進制文件(YMMV)。

+0

有關IL抑制的信息,請查看http://msdn.microsoft.com/en-us/library/ms244717(VS.80).aspx – 2009-08-11 12:03:10

+0

+1也可以執行'/ p:CODE_ANALYSIS '在全球範圍內在CI服務器上而不是新的VS構建配置(並在桌面上提供一個類似的配置),如果你有一臺CI機器「提交/驗證」構建配置,其中箱中的東西無關緊要 – 2012-06-19 11:46:19

1

我們的東西有這樣的問題。我們剛剛得到了每個四核64位處理器和8個16GB RAM。另外,我們試圖限制任何一點的項目數量。不是最優雅的解決方案,但它幫助了很多。