2010-06-07 43 views
0

獲得了安裝了VS2010 Premium的Win7框。 構建桌面應用程序工作得很好。 但是我們得到了15 SL4和21個桌面項目的解決方案......構建它的SL部分需要很長時間。這非常刺激,並鼓勵丟棄TDD,因爲每次運行測試時,msbuild需要3秒才能發現沒有任何更改,並且應該跳過項目。這些項目非常小,沒有任何花哨的東西,在我們從VS2008 + SL3切換之前,我們沒有任何問題。 我聽說有人抱怨VS2010的速度一般,但沒有任何關於SL4的構建時間。 有沒有人遇到同樣的問題,有沒有解決這個問題的方法?構建SL4 + RIAServices應用程序在VS2010上花費的時間太長

回答

0

你需要這麼多項目嗎?作爲一個經驗法則,越少越好。你說這些項目非常小,這對我來說可能並不需要那麼多。

不要用它來管理依賴關係(循環避免)。如果您嘗試管理「開發單元」或邏輯分組,請改爲使用名稱空間。

物理/項目分離對於將測試代碼保留在生產代碼之外並對部署進行管理是很好的,但是不要將其分開,直到您從中獲得某些東西。

Patricks Smaccia寫了一篇好文章on when and when not to創建程序集。

解決此問題的另一種方法是將您的解決方案分解爲多個解決方案,並且 使用對其他解決方案生成的dll的引用。這樣,你一次只能構建其中的一部分。如果你需要同時處理多個DLL,這是不方便的,但這是一個跡象表明,代碼的設計可能會出現問題。

這個帖子在speeding vs.net up with many projects也可能有所幫助。

+0

謝謝你的鏈接。要馬上閱讀。但是,我仍然覺得構建需要花費很多時間,並且想知道可能的解決方法而無需合併項目,這是不可接受的。我不得不承認,在這種情況下,我們不需要那麼多的程序集 - 這一塊軟件對我們來說是一種技術評估。而且有可能在下一個項目中我們必須極其模塊化解決方案(插件架構) – adlanelm 2010-06-07 08:57:03

+0

您是否正在運行代碼分析?我們做的一件事是創建一個沒有代碼分析的構建配置。這使我們能夠更快地構建。在進行TDD時這項工作非常好。通過插入式體系結構,您絕對不需要將所有內容都保存在一個解決方案中。爲每個插件提供單獨的解決方案,參考核心程序集可能是值得的。如果你有一套標準的插件,請將它們保存在一個項目中。 YMMV,當然。 添加了一個額外的鏈接到答案的一些其他技巧,你可以嘗試。 – Frederik 2010-06-07 09:12:57

+0

代碼分析首先是責備和禁用它是第一件事。我已經嘗試了在這個網站上找到的技巧 - 沒有顯着的變化。正如我所提到的,該項目主要是一項技術評估,因此它非常不穩定 - 它有助於在1解決方案中擁有所有內容。我們可以將其分解爲多個解決方案,但不得不手動重新編譯每個相關解決方案,因爲IMO無效並且容易出錯。是的,我已經試圖自動化構建過程,但RIAServices一直在阻礙。無論如何,謝謝你的努力。 – adlanelm 2010-06-07 09:48:16