如何在启用包恢复时指定nuget包的位置?

时间:2012-10-04 23:44:05

标签: nuget nuget-package nuget-server

我正在研究.net解决方案并使用nuget进行包管理。我已选择“启用Nuget包还原”选项,以便nuget包未签入源代码管理。

在此之前,我有一个与我所包含的解决方案相同级别的nuget.config文件,以便让我指定nuget包的位置。

<settings> 
  <repositoryPath>..\Build\NuGetPackages\</repositoryPath> 
</settings> 

由于我启用了nuget包还原,因此不再有效。我试图在.nuget生成的文件夹中更新配置文件,但这也不起作用。

所以我出错了,如何指定packages文件夹的位置?

3 个答案:

答案 0 :(得分:5)

启用nuget包还原时,.nuget文件夹中有一个NuGet.Config文件。

这是一个显示我的libs文件夹路径的副本。您可以修改自己的路径以匹配您的路径。我认为它比已经选择的答案更清洁。

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <solution>
    <add key="disableSourceControlIntegration" value="true" />
  </solution>
  <config>
    <add key="repositoryPath" value="../../libs/packages" />
  </config>
</configuration>

答案 1 :(得分:2)

您可以更改your-solution\.nuget\NuGet.targets文件中的下一个属性:

<PackagesDir>$([System.IO.Path]::Combine($(SolutionDir), "packages"))</PackagesDir>

或者是相同的属性,但如果您使用Mono,则在下面的组中。

答案 2 :(得分:2)

您还应该查看nuget 2.1发行说明http://docs.nuget.org/docs/release-notes/nuget-2.1,其中有一个新设置添加到nuget.config以指定包文件夹位置

<configuration>
  <config>
    <add key=" repositoryPath" value=" C:\myteam\teampackages" />
  </config>
  ... 
</configuration>