2012-09-05 134 views
5

我有一個由大約100個項目組成的Visual Studio解決方案。他們中的大多數形成依賴關係層次結構。現在,如果我爲某個項目更改了一個.cs文件並構建它,那麼所有依賴項目也會生成 - 無論它們是否已更改。有沒有辦法讓Visual Studio只生成已更改的項目?每次我通過重建整個地段來做一點改變,我都在浪費分鐘。它加起來很大!減少Visual Studio編譯時間

+0

他必須重建依賴項目是合乎邏輯的,因爲他必須檢查你是否沒有破壞任何東西。我不知道你是否有固態硬盤,但對我來說,它有助於SSD(縮短構建時間)。 – Styxxy

+0

我很確定你在調試中遇到的問題會使這樣做不切實際。 – Stuporman

+1

在一個解決方案中有100多個項目,並且滲透到很長的構建時間中是一個設計/組織問題。在什麼時候停止改變卡牌房屋的基礎?當然,你有一些應該減去1000點?無法解決這個問題,無論如何,這並不符合程序員的Q + A站點。不能責怪這個工具,它只是做你要求它做的事情。將你的厭惡翻譯成你的團隊成員和建築師的消息。我們無法爲此提供幫助,但我們並沒有像現在這樣勾心鬥角。 –

回答

4

不,沒有好辦法做到這一點。某些增量式有時會出現構建(Visual Studio 2010或更高版本),但沒有保證。

將已成熟的項目編譯爲程序集,並從您的不穩定(當前正在開發)項目中引用它們。如果你正在做適當的單元測試,這應該不是一個大問題。分而治之;首先完成依賴關係並使它們穩定,然後將它們提交給程序集。

2

減少項目數量。

每個項目產生一個DLL - 一個單位部署This is normally not needed

如果您需要按邏輯安排代碼,則可以在項目中使用文件夾。

另外,不是項目引用,而是引用構建的DLL。


爲什麼這個建議的工作原理:

  • 較少的DLL產生。
  • 對這些DLL的引用較少,所以較少的DLL需要被複制。
  • 許多其他項目引用的項目會針對每個引用項目重新編譯。如果使用DLL而不是項目引用,則不會發生重新編譯。
+0

這隻會使構建變慢,因爲必須重建相同或更多的代碼。 – ssube

+0

@peachykeen - 試試吧。你會感到驚訝。減少項目==減少DLL。較少的DLL ==較少的複製和較少的重新編譯。 – Oded

+0

我有,更少的大型項目和更多的小型項目。我不是,當問題是需要重建的代碼量時,它沒有幫助。文件副本很難導致這種問題,這是級聯重新編譯,大型項目不會(總是)逃脫。 – ssube