可以更改Package Manager Console的软件包安装目录吗?

时间:2013-10-10 11:17:03

标签: visual-studio-2012 msbuild nuget

我正在使用与msbuild(visual studio 2012)的nuget集成来自动恢复损坏的包。您可以在下面看到解决方案的.nuget / nuget.config文件:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageRestore>
    <add key="enabled" value="True" />
  </packageRestore>
  <disabledPackageSources />
  <activePackageSource>
    <add key="All" value="(Aggregate source)" />
  </activePackageSource>
  <config>
    <add key="repositoryPath" value="..\..\Lib\NuGet\Packages" />
  </config>
</configuration>

我的包目录从解决方案移出。这在构建期间工作正常,但程序包管理器控制台仍然使用$(SolutionDir)\packages来安装(和恢复)程序包。

可以更改“程序包管理器控制台”的程序包目录吗?

2 个答案:

答案 0 :(得分:0)

nuget.config

你得到了第一部分:

  <config>
    <add key="repositoryPath" value="..\MySuperCoolPackages" />
  </config>

但是你必须明确告诉命令行有关nuget.config文件。

C:\SomeFolder\NuGet.exe install "C:\MySolution\.nuget\packages.config" -ConfigFile "C:\MySolution\.nuget\nuget.config"

答案 1 :(得分:0)

当您使用repositoryPath创建nuget.config时,您需要重新启动VS才能重新读取它并让控制台知道它。

编辑:@DmitryBykadorov很奇怪,可能你的nuget已经过时了?有一个早期的问题,由于配置在.nuget子文件夹而不在.csproj的当前&gt;父&gt;父&gt;等路径中,它不会看到它并且需要一个nuget.config使用repositoryPath恢复信息和一个(通常在.sln或.csproj本身旁边),但我的VS2012与它附带的任何最新的nuget工作正常下面的配置。可能是你的全局nuget配置以某种方式影响它,或者你的解决方案需要硬清理/重建?

<configuration>
  <solution>
    <add key="disableSourceControlIntegration" value="true" />
  </solution>
  <config>
    <add key="repositoryPath" value="..\..\lib" />
  </config>
</configuration>