Dot-Net

是否可以更改 NuGet 包的位置?

  • November 3, 2010

我的大多數項目都有以下約定:

/src
   /Solution.sln
   /SolutionFolder
       /Project1
       /Project2
       /etc..
/lib
   /Moq
       moq.dll
       license.txt
   /Yui-Compressor
       yui.compressor.dll
/tools
   /ILMerge
       ilmerge.exe

您會注意到我沒有將外部庫保存源文件夾中。我也對使用 NuGet 非常感興趣,但不希望在源文件夾中使用這些外部庫。NuGet 是否具有更改所有包載入到的目錄的設置?

現在可以控制安裝包的文件夾。

<http://nuget.codeplex.com/workitem/215>

編輯: 請參閱 Phil Haack 在 2010 年 12 月 10 日晚上 11:45 發表的評論(在工作項/上面的連結中)。該支持在 1.0 中部分實現,但未記錄在案。

根據@dfowler:在解決方案旁邊添加一個 nuget.config 文件:

&lt;settings&gt;
&lt;repositoryPath&gt;{some path here}&lt;/repositoryPath&gt;
&lt;/settings&gt;

有一個用於創建封包件夾覆蓋的 nuget 包。

2.1 版更新

正如 Azat 評論的那樣,現在有關於如何控制包位置的官方文件。2.1的發行說明在 nuget.config 文件中指定了以下配置(有關放置配置文件的有效位置以及分層配置模型如何工作的說明,請參閱發行說明):

&lt;configuration&gt;
 &lt;config&gt;
   &lt;add key="repositoryPath" value="C:\thePathToMyPackagesFolder" /&gt;
 &lt;/config&gt;
 ... 
&lt;/configuration&gt;

這將更改您放置文件的配置級別的封包件夾(如果將其放在解決方案目錄中的解決方案,項目目錄中的項目等等)。請注意,發行說明指出:

[…] 如果您的解決方案根目錄下有一個現有的封包件夾,則需要在 NuGet 將包放置在新位置之前將其刪除。

引用自:https://stackoverflow.com/questions/4092759