2011-02-11 25 views
36

我想要一個存儲我所有dll的庫文件夾。我目前正在做的是建議here。有物理文件夾,創建解決方案文件夾,複製文件。在Visual Studio解決方案文件夾中存儲引用的Dll

如果我使用SVN,我將不得不在文件資源管理器上使用龜來添加庫。不知道我是否必須在TFS中做同樣的事情。

在2010年,有沒有更簡單的方法來做到這一點?我希望能夠將一個DLL拖入Visual Studio中的庫文件夾,並讓它將該DLL放入該文件夾中。

回答

65

這就是我的做法。不知道是否還有其他更好的方法:

  1. 右鍵單擊解決方案資源管理器中的解決方案。懸停在 「添加」並選擇「新解決方案文件夾」。這不是一個真正的文件夾 ,並不指向任何物理文件夾。這是一個抽象的 結構,用於在解決方案中對項目進行分組,但我們會用 來解決其他問題。
  2. 稱之爲「引用組件」。
  3. 接下來,再次右鍵單擊您的解決方案,然後單擊「在Windows資源管理器中打開文件夾 」。在彈出的窗口資源管理器窗口 添加一個新的「物理文件夾」(這將位於解決方案的根文件夾的 正下方)。
  4. 您可以將其稱爲「引用程序集」,以便解決方案文件夾和物理文件夾共享相同的名稱以避免混淆。
  5. 抓住所有這些DLL的潛伏無處不(即 AjaxControlToolkit.dllDocumentFormat.OpenXml.dll埋在 程序文件)及複印件(不拖 - 保留了原圖,他們 是)他們入Windows資源管理器中的「Referenced Assemblies」文件夾 (不在解決方案中)。
  6. 現在您可以將這些複製的dll從Windows資源管理器中的「引用程序集」 物理文件夾拖放到Visual Studio解決方案資源管理器中的「引用程序集」解決方案文件夾 中。
  7. 檢查解決方案中的每個項目,並將所有引用 刪除到將從「參考 程序集」文件夾中引用的程序集。
  8. 添加引用回來,但這一次(在項目下) 右鍵單擊「引用」,單擊「添加引用...」,選擇 「瀏覽」選項卡,單擊帶有綠色的文件夾圖標箭頭(說:「上一個 一個級別」,當它懸停在它上面),雙擊「參考 Assemblies」文件夾,選擇所有你想參考的DLL和 單擊「確定」。

你完成了。現在你的解決方案知道這些DLL以及在哪裏可以找到它們,當你檢查你的代碼時(通過SVN,TFS或其他),它會將它們推送下來供其他人使用。

如果您使用TortiseSVN,如果您還使用AnkhSVN plug-in for Visual Studio,則無需執行任何操作。它研究你的解決方案文件(就像TFS一樣)來查找解決方案引用的文件。在這種情況下,它會接受由「引用程序集」解決方案文件夾引用的新dll,並在提交它們之前自動添加源代碼控制跟蹤(即,如果您從Visual Studio中的解決方案資源管理器像我一樣提交解決方案更改)。

希望這會有所幫助。

+3

這就是我目前做我的。 50美元,他們添加了一個更好的方式來做像vs2020這樣的功能...(x_x) –

+1

請注意,您不能簡單地將文件夾拖入解決方案文件夾。所以你應該創建一個反映文件系統文件夾的樹結構(帶有子解決方案文件夾)。這有點不舒服,但這是VS的內置限制。 –

+0

@RonKlein不確定你的意思。我從來沒有說過將文件夾拖入解決方案文件夾。我的過程起作用,它可能與您使用的方法相同。 – MikeTeeVee

相關問題