2013-03-07 59 views
9

我有一個大型解決方案,每天都在TFS中構建。該解決方案涵蓋多個邏輯子解決方案 - 例如由項目A,B,C,D組成的ApplicationA;應用程序B由項目A,B,E,F,由項目A,C,G,H組成的應用程序C.組織一個大型的c#解決方案

目前我們在本地製作構建解決方案文件的副本,並卸載不需要構建的項目以處理項目 - 因此對於ApplicationA,我們將卸載除A,B,C,D以外的所有內容。

另一種方法是創建多個解決方案配置,只會爲ApplicationA構建項目A,B,C,D - 但我擔心這會很麻煩,並且.sln文件最終會變得非常龐大。

問題是,許多項目都集中在一個wix包中並安裝在一起 - 因此主.sln文件很有意義,特別是從構建角度來看,還有調試。

維護多個解決方案文件似乎不正確,因爲添加新項目時我們需要將它們添加到多個解決方案。所以也許配置方法是要走的路,但它也不舒服。

有沒有人有類似情況的經驗,你是如何解決它的?

+1

「但是,當添加新項目時,我們需要將它們添加到多個解決方案中,但保留多個解決方案文件並不可行。」?這真的太繁重了嗎?我總是使用多種解決方案(處理大量項目時),並且從來沒有發現這非常痛苦。 – 2013-03-07 00:28:52

回答

11

這聽起來像它將使意義有五個解決方案文件:

  • Master.sln,包含所有項目
  • ApplicationA.sln,包含項目A,B,C,d
  • ApplicationB的.sln,包含項目A,B,E,F
  • ApplicaitonC.sln,包含項目A,C,G,H

它的優良都壽將解決方案文件放在同一個頂級目錄中。

但是,保持多個解決方案文件不可行,因爲添加新項目時我們需要將它們添加到多個解決方案中。

爲什麼這是一個問題?您需要確定項目所需的應用程序......在主解決方案(肯定需要它)中創建項目,然後使用「添加現有項目」獲取需要它的解決方案。這真的是沒有太多的工作 - 我不希望新項目往往被添加,無論如何。 (如果它們是,那就說明存在更大的問題。)

+0

感謝喬恩 - 這正是我所認爲的前進的正確方向,只是通過配置來實現它的想法已經提出,所以我想進行調查。 (順便說一句 - 喜歡你的書和視頻在C#設計策略視頻:)) – NDJ 2013-03-07 00:35:46

+1

@NDJ:配置也可以,但在其他方面也很痛苦。 (例如,在構建相同程序集的不同版本時,我使用Noda Time的配置)。爲了專注於幾個項目,我認爲單獨的解決方案更有意義。 – 2013-03-07 00:37:32

相關問題