2010-06-23 84 views
1

我有一個有三個應用程序(一個Windows應用程序和兩個Web應用程序)的系統。這些應用程序共享兩個程序集。因此,我總共有5個項目。在過去,我爲每個項目都有單獨的解決方案。這使我可以在源代碼管理中分別對每個程序集進行版本化但是,這有很大的開銷,因爲我必須單獨打開每個解決方案,以查看我對其中一個常見程序集所做的更改是否破壞了任何應用程序。Visual Studio中的版本控制和解決方案結構

我曾考慮轉向一個解決方案包含所有項目的結構。這使我能夠立即看到我所做的任何更改的影響,但這會導致版本控制問題。如果我只更改常用程序集或僅更改其中一個應用程序,那麼每個項目/程序集很快就會處於不同的版本級別。在源代碼控制中,由於整個解決方案在一起,因此我的項目存儲庫中沒有單個版本號。

我已閱讀的每個討論似乎都解決了一個問題或另一個問題。可以使用多種解決方案來簡化版本控制,也可以使用單一解決方案來實現更輕鬆的依賴控

人們有什麼樣的建議來構建解決方案/項目,同時能夠適當地組裝版本?

回答

1

我會堅持使用多種解決方案。您的Windows應用程序確實不(也不應該)需要知道您的Web應用程序中發生了什麼。

我使用類似的設置工作,其中我們有多個Web應用程序,它們之間共享共享程序集。如果每天(或者如果你的構建時間足夠快的話)持續一段時間,構建就會大有幫助。我們使用NAnt和CruiseControl,但可用選項與意見一樣豐富。

如果您使用連續構建設置,則可以在共享庫構建並通過其單元測試後觸發其他解決方案(Web應用程序等)。您仍然需要打開另一個解決方案,但構建服務器可以告訴您是否需要。

+0

+1用於持續集成並使用構建服務器進行單元測試。 – David 2010-06-23 13:21:40

0

就我個人而言,我喜歡有利於更容易依賴控制的解決方案。我更擔心打破變化,而不是我在同一版本#中的項目。

唯一一次我(親自)會關注版本#是當我必須排除故障或修復錯誤。如果我必須做一個錯誤修復,那麼我最終會重新編譯代碼,並且會有最新的版本。誠實地說,如果有人在那裏運行使用我開發的某個共享類庫的舊版本的代碼,那又如何?如果它有效,如果它在舊版本,我該怎麼處理。這可能是有更新版本的唯一原因是稍後編寫的某些OTHER應用程序需要額外的功能。

這當然假定你遵循的命令是「你不應該改變共享程序集是這樣一種方式,即改變破壞了現有的代碼。」添加一個新功能即可。修改一個函數,使其在內部工作方式不同,但返回相同的結果即可。更改功能以使其適用於新軟件但打破現有軟件並不正確。然後,擔心版本化將成爲一個問題。

當然,這可能是因爲我從來沒有在一個有擔心版本的理由的商店工作,所以我期待被這個答案毆打,但即使是我,我確信我會從關於爲什麼這是一個糟糕的答案的評論中學習,這就是爲什麼我喜歡這個網站。

相關問題