2012-07-31 36 views
-2

我有以下情況,項目A引用A1和A2 DLL。 Proj A是一個庫項目,包含一些常用的數據相關功能,可用於所有應用程序。解決方案X中的項目B和解決方案Y中的項目C依賴項目A使用其數據相關功能。現在我有以下選項。添加對DLL的引用並不複製Visual Studio中bin文件夾中的所有依賴DLL

選項1:無論是解決方案的X和Y

添加項目A和讓各自的解決方案,項目B和C添加項目A作爲一個「項目引用」,這將複製A.DLL,A1 .dll和A2.dll自動在項目B和C的bin文件夾中。

優點:

  1. 如果我更改了PROJ一個東西,它會被自動凸出B和C.
  2. 正如我提到的反映,它會複製不僅A.DLL但A1.dll和A2.dll在PROJ B和C. PROJ

缺點的bin文件夾:

  1. 如果更改PROJ A的位置,然後我孃家d解決這兩個解決方案,並需要構建所有使用Proj A作爲項目參考的解決方案。

選項2:

創建一個單獨的中央解決方案,其中包括所有的公共庫項目。創建項目CommonLib將所有庫項目添加爲項目Reference,以便CommonLib將Proj A引用爲項目引用。這會將A.dll,A1.dll和A2.dll複製到CommonLib項目的bin文件夾中。現在在解決方案X和Y中項目B和C需要從項目CommonLib的bin文件夾中引用A.dll。

優點:

  1. 變化凸出A的位置,不會影響固定索爾X和Y,因爲你需要的只是一個單一的地方,是CommnLib的解決方案來解決。

缺點:

  1. 如果從commonlib bin文件夾指A.DLL,在該凸出B,那麼它不會自動凸出的bin文件夾複製A1.dll和A2.dll B.所以你永遠不會知道什麼是所有DLL proj A依賴。

爲什麼當我從CommonLib項目的bin文件夾中引用A.dll時,不包括A1.dll和A2.dll?任何解決方案。

[注:我不想使用GAC]

回答

0

選項1是最好的選擇2是不是最好的

相關問題