簡體   English   中英

如何在一個解決方案中共享源項目之間的許多二進制文件?

[英]How to share many binary files between source projects in one solution?

我有一個小的解決方案,大約有不到20個項目。 該解決方案過去還包含由第三方服務提供商ACME編寫的大約六個源項目。 現在,最后,這個對方向我們提供了一些DLL。 我過去只是在解決方案中包含了他們的源代碼,每個DLL的一個項目,所以我正在尋找一種巧妙的方法將所有這些程序集包含在解決方案中,因此可以從需要它們的許多項目中引用它們。

我立即明顯的選擇是:

  1. 創建一個AcmeAssembly項目,將所有DLL添加為要復制到輸出的項目項。
  2. 創建AcmeAssembly解決方案文件夾。 比“僅二進制”源項目更快更簡單,但是解決方案文件夾具有非常大的缺點,即無法在沒有解決方案文件的情況下對文件進行分組,即在VS之外。
  3. 創建一個包含所有必需二進制文件的NuGet包。 那么至少我們在packages文件夾中也有一個部分“phycical”分組。 我的問題是我從來沒有寫過NuGet包,但我不是在問這里怎么樣。 我問三個候選解決方案,歡迎更多,如果NuGet獲勝,我會學習寫一個包。

我不能簡單地使用項目的輸出bin\\debugbin\\release文件夾。 對我來說,這些是嚴格的輸出文件夾,除此之外,還應該輸出其他依賴程序集。 刪除bin文件夾應該對構建產生絕對零影響,因此當然不能存儲二進制文件。

創建您的Acme庫文件夾(類似於:C:\\ Source \\ Library \\ AcmeLibrary)。 將所有Acme dll放在該文件夾中。 然后在VS中創建解決方案文件夾並將現有項添加到它(不要使用“添加現有項...”菜單將文件夾,但C:\\ Source \\ Library \\ AcmeLibrary文件夾中的項目添加到解決方案文件夾中選擇)。

nuget優於其他解決方案的優勢是:

  1. 支持版本控制
  2. 支持內置於Visual Studio和MSBuild中
  3. 沒有所有開發人員需要在他們的機器上擁有的“魔術文件夾”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM