2010-12-15 77 views
4

我一直無法找到這個問題的答案。我以前使用過Nu,並且有能力識別「寶石」的安裝位置。舉例來說,我想保持我的項目結構是這樣的:是否可以告訴NuGet在哪裏存儲解決方案的包?

 
MyProject 
    |-MyProject.build 
    |-MyProject.sln 
    |-doc 
    |-lib 
    | |- ... my packages/gems ... 
    |-sql 
    |-src 
    | |-app 
    | |-test 
    |-tools 

正如你可以看到我喜歡讓第三方庫的一個「LIB」文件夾中的我的解決方案中使用。使用怒江,而在我的項目的根目錄下,我可以簡單地使用命令:

 
nu install log4net --location=lib 

這樣做會搶請求的包,並把它放在我的「LIB」文件夾中供以後參考。

那麼,這可能使用VS.NET中的「包管理器控制檯」嗎?我需要使用其他方法嗎?感謝您的幫助!

+0

這可能是值得從塞巴斯蒂安蘭布拉最近的博客文章閱讀:http://codebetter.com/sebastienlambla/2010/12/11/why-choosing-your-own-path-for-packages-is-asking-這個錯誤的問題/ – 2010-12-15 09:55:21

+0

@Damien_The_Unbeliever你想發表你的評論作爲答案?這基本上爲我回答了一些事情。 – Mateo 2010-12-16 22:58:32

+1

這是另一個可愛的非答案,假設開發人員可以控制依賴關係可以駐留的位置。我正在尋找同樣的東西 - 我正在使用Unity3D。除非依賴關係進入特定文件夾,否則它不會被看到。 – 2011-03-13 09:57:27

回答

4

Sebastien Lambla寫了一篇關於OpenWrap的最新文章blog post,但也談到了NuGet。在這裏面,認爲該項人要求把在其他地方包真的問錯了問題:

當「我可以改變軟件包去」,通常是底層,真正的問題,這個問題是一個二:「我希望他們在我的傳統庫中的/ lib中」,或者「在我的公司環境中,我不想簽入所有依賴項,因爲我不關心xcopy部署」。

然後繼續解釋你的軟件包管理器「擁有」的庫確實不像你依賴的其他庫所擁有的那樣。

8

Sebastiens的帖子都很好,但我真的很在乎包裹的去向。 Nuget(或任何軟件包管理器)不應該認爲它最好。

而且它不應該假設解決方案==完整的源代碼樹。澄清:我的源代碼樹包含80多個解決方案,全部位於不同的位置,相對於解決方案文件夾的軟件包回購會導致所有軟件包的80多個克隆,這是緩慢而浪費的。

現在(的NuGet 1.3)的無證黑客是把一個nuget.config文件旁邊的解決方案使用相對路徑來回購在它像這樣

<settings> 
    <repositoryPath>..\..\lib</repositoryPath> 
</settings> 

這可能會或可能不會進行工作你因爲它是一個黑客。

相關問題