2013-08-30 80 views

回答

1

如果您剛開始使用代碼分析,那麼您可能會誤認爲症狀。您看到: ê 1.代碼分析需要相當長的時間量, 2.在代碼分析,該項目建立

你可能會結合這兩種症狀和深遠的結論是代碼分析強迫重建你的項目。這將是一個錯誤的假設。試試這個:

  1. 確保您的項目在建設
  2. 重建您的解決方案配置爲運行代碼分析。注意需要多長時間
  3. 構建(不重建)解決方案,但是這一次,注意需要多長時間

你會發現,你的解決方案實際上是「建立」,但由於項目是最新的,編譯器和其他工具不運行。因此,代碼分析確實首先運行你的解決方案的構建,但是它將會像上面的#3一樣構建 - 沒有任何變化,所以這些工具不會運行。只有代碼分析工具(FxCop)會運行。這需要比您預期的更長的時間,但它是值得的。

在我們的環境中,我創建了一個「本地」解決方案和項目配置,從「調試」複製而來。該配置與「調試」大致相同,但不運行代碼分析。這是我們的開發人員每天使用的基礎。將代碼簽入TFS時,它會再次在「本地」配置中啓動持續集成(CI)構建,而無需進行代碼分析。

另一方面,夜間構建運行「調試」配置,因此它運行代碼分析。我發現我們不需要每個版本的代碼分析結果,但是它每天都需要一次。

OBTW,代碼分析並不新鮮。如果你看看你鏈接到的MSDN頁面,你會在「其他版本」下拉菜單中找到2010版本的頁面。事實上,在它成爲產品的一部分之前,代碼分析功能可以作爲名爲「FxCop」的Visual Studio插件提供。

+5

嗨感謝您的回覆。在代碼分析中,靈魂決心再次重建。輸出窗口顯示了這一點。自行重建並運行代碼分析的時間幾乎相同。代碼分析在重建時不運行。構建時間要快得多。 – user2732185

2

我相信上面的Johns聲明是錯誤的。

根據我的經驗,無論是否配置了代碼分析,項目都會被重建。

我有超過100個項目的解決方案。如果我選擇1個項目並僅對該項目運行代碼分析,則會重建該項目及其所依賴的所有項目。它不會在其他項目上運行代碼分析,但它仍然會重建它們。

那麼爲什麼它必須重建所有的子項目來運行代碼分析?

相關問題