請告訴我,如果以下情況可能與常規版本的VS實現,我的意思是非團隊版本。首先,我們的團隊足夠小,大約有10位開發人員,我們使用SVN作爲存儲庫。目錄結構相對爲每個開發人員相同並且爲簡化起見,它看起來像在Visual Studio中組織團隊工作
工作\部署
工作的\ Sources
所有項目都駐留在「源」目錄,並把輸出DLL中的「部署」目錄。
想象一下,我們正在研究項目「CoreLibrary」,輸出dll是CoreLibrary.dll,第二個項目是「SomeLibrary」項目,它用作參考CoreLibrary.dll。這是簡化的情況,在現實生活中,這個項目可能依賴於其他開發人員負責的大量dll。在這種情況下,當編譯SomeLibrary之後更改CoreLibrary時會出現這種情況。例如忘記通知其他開發者更新他們的參考資料。這種變化使得SomeLibrary項目不能編譯,但它只會在運行時才知道 - ) 因此,爲了避免這種情況,我們決定另外將所有項目合併到一個複合解決方案中,其中一個項目引用其他項目 - 而不是輸出dll ,那麼如果整體解決方案構建意味着全部兼容。但是有一個問題 - 爲此,我們需要將源項目的依賴項從dll更改爲項目。如果我們打開獨立項目,我們可以將這個引用的excalmation圖標反對出來,但項目仍然可以編譯。
作爲結論 - 我們通過dll在項目之間引用(每個項目 - 原子功能)。原子性導致當我們改變一個「原子」時,我們必須檢查這種改變是否與其他依賴原子相容。做整體解決方案比較方便,我們加載最新的源代碼並嘗試編譯。但是,我們需要改變從dll到項目的項目之間的依賴關係。這似乎不太「正確」,因爲在源代碼獨立項目中更改引用。 爲所有開發人員提供一個大的解決方案,迫使他們重新編譯所有的源代碼,而不僅僅是他的項目也是糟糕的。
我想每個開發人員都在處理他的項目時,這個項目包含在主要解決方案中,因此每次調試自己的解決方案時,都會重新編譯此解決方案中其他項目的所有源。這一刻減緩了這個過程 – 2010-01-28 07:54:22
那麼你是說你正在使用共享項目?每個開發人員都應該有自己的項目,應該只在您構建解決方案時重新構建。 – msarchet 2010-01-28 20:55:48