当启用包还原时,如何指定NuGet软件包的位置?

5

我正在开发一个.net解决方案,并使用nuget进行包管理。我选择了“启用Nuget程序包还原”选项,以便将nuget包不放入源代码控制。

在此之前,我在与解决方案相同的级别上有一个nuget.config文件,在其中包含以下内容,使我能够指定nuget包的位置。

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

自从我启用了NuGet软件包还原功能后,这个问题就不再起作用了。我尝试更新.nuget生成的文件夹中的配置文件,但也不起作用。

那么我做错了什么,怎样才能指定软件包文件夹的位置呢?

3个回答

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>

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>

2
您可以在your-solution\.nuget\NuGet.targets文件中更改下一个属性:
<PackagesDir>$([System.IO.Path]::Combine($(SolutionDir), "packages"))</PackagesDir>

如果您正在使用Mono,则可以在以下组中使用相同的属性。

谢谢这个 - 这正是我尝试的,但某种原因直到我重新启动了Visual Studio之后才被捕获到更改。 - amateur

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接