我們有一個VS2010解決方案,其中包含一個Windows窗體應用程序和4個類庫(DLL)項目。 (這些類庫是BusinessTier,DataTier,CommonCode,ControlLibrary等)。整個事件是針對框架2.0的。三年來一直如此。組織兩個類似產品的Visual Studio解決方案
好
所以我們的應用程序已經發展到哪裏,我們要添加大量新功能和營銷想將其部署爲一個單獨的產品的地步。我們的產品用於填寫稅表,第二種產品將填寫其他稅表。
我們希望最終得到兩個exe(兩個安裝MSI),它們將獨立銷售/安裝/更新,並且可以同時在同一臺計算機上運行。大部分代碼在兩個應用程序之間是相同的。
我想找出構建解決方案以創建所需結果的最佳方法。
1)選擇一可以創建一個新的EXE項目和幾個新的DLL項目在相同的原始解決方案(說在一個解決方案文件夾中)與大多數代碼文件具有唯一的名稱,版本,guids等作爲鏈接返回到原始類似DLLS中的代碼文件。這使我們可以擁有兩個完全獨立的系統,併爲所有文件,版本號等提供唯一的名稱,但允許對每個項目/ dll進行任何定製。這是一個好主意還是矯枉過正?
2)選項二將在解決方案中創建一個新的exe項目並鏈接到與第一個exe項目相同的dll。這似乎很簡單,但我不知道是否有兩個使用相同DLL的項目是一個好主意。我真的不想使用GAC。如果我們有兩個使用相同Dll的exe(即使它們將位於不同的應用程序文件夾中),但如果DLLS具有相同/不同的版本號,名稱或GUID,則會出現問題?
你有什麼想法?
我應該如何重構解決方案以適應新產品?
如果我們不將它暴露給COM,那麼程序集GUID與DLL的功能沒有任何關係,這是真的嗎?程序集信息文件具有對GUID的引用。因此,將這個文件共享意味着該GUID在項目中的所有組件中都是通用的。 – 2012-03-27 01:32:33
它很好,一直都在做。有很多常用的.net庫,它們一直都在您的PC上部署。對於一些第三方libries,Telerik,componentone,其他隨機開源dll將在您的電腦上的許多不同位置。相同的程序集(相同版本和不同版本)將在您的電腦上安裝不同的應用程序。每個.net應用程序是分開的。 – JonAlb 2012-03-28 19:31:11