2010-08-01 159 views
21

目前我有4個解決方案是獨立的項目,但是當涉及到幾個應用領域時,有相當多的重複代碼。在Visual Studio中使用多個項目/解決方案的最佳方式?

目前它只是一些表格及其相關的代碼。

當我想改變或改進某些東西時,我必須複製並粘貼到所有相關項目。

我着眼於在.dll/class庫的一個解決方案中創建一個新項目,但我覺得這是不正確的。 (請說如果我錯了)。

因爲它是所有應用程序的組件,所以我決定爲.dll/class庫創建一個新的解決方案,並且正在考慮將共享代碼移動到那個位置 - 但是,從未沿用過此路線,我從這裏有什麼選擇?

如果我需要進行簡單的更改並在所有項目中進行更新,或者相反,我是否能夠將此解決方案包含在其他人中?或者,我應該始終在Visual Studio的單獨實例中處理共享組件,在使用它的應用程序之外?

回答

16

這正是處理這種情況的正確方法。

可以包括通過右鍵單擊該解決方案,然後選擇添加現有項目...

在多個解決方案項目進行任何改變,那麼你做將出現在所有的解決方案。這導致的唯一問題是可能會破壞另一個解決方案。這是自動構建源代碼控制承諾的地方。

+1

謝謝你。 - 要清楚,我應該爲共享功能創建獨立解決方案,然後轉到其他解決方案並選擇添加項目?......我不想直接將新項目添加到現有解決方案的原因是因爲我認爲它以某種方式將它與該解決方案聯繫起來,只能在那裏使用 - 我錯了嗎? – Wil 2010-08-01 21:42:07

+1

您可以在現有解決方案中創建項目並將其添加到其他項目中。然後,您可以在已存在的項目中添加項目引用。 – pdr 2010-08-01 21:46:52

+1

@pdr - 我不能說我真的很瞭解你,但我只是嘗試了它(只與共享msgbox授予 - 但你必須從某處開始!),我不能相信它是多麼容易和直接是。非常感謝您的幫助。 – Wil 2010-08-02 12:39:23

3

將公共代碼移動到單獨的共享程序集中是一個很好的選擇。

需要考慮的一件事就是讓您的通用業務邏輯或業務對象類型代碼與用戶界面相關的代碼(如自定義控件)分開 - 如果需要的話,則需要有兩個通用程序集。開始時這是更多的工作,但是當您需要進行UI更改或更改您正在使用的控制套件時,使事情更輕鬆。

在單獨的解決方案/項目作爲類庫
+0

非常感謝您的幫助 – Wil 2010-08-02 12:39:44

10
  1. 認沽共享代碼,
  2. 在後期製作共享項目的生成事件的DLL複製到指定目錄,
  3. 從這個目錄中添加共享的DLL的其他項目/解決方案

通過這樣做,每次你建立你的消費者項目,他們會自動使用最新的DLL。

+0

非常感謝您的幫助。 – Wil 2010-08-02 12:41:16

+0

比在所有解決方案中共享現有項目要好得多,但它可能會使複雜的一件事是自動構建和持續集成,但所有可能的 – mikus 2016-01-11 17:57:30

相關問題