NuGet 3.5 / Visual Studio 2015 - 更改软件包缓存位置

6

是否可以将NuGet软件包缓存路径从%UserProfile%\.nuget\packages更改为自定义位置?

我尝试使用环境变量NuGetCachePath,但似乎无法与其一起使用。


您可以使用基于注册表的策略:https://blogs.msdn.microsoft.com/heaths/2015/06/09/redirect-the-package-cache-using-registry-based-policy/ - Jack Zhai
3个回答

4
您可以通过设置名为 NUGET_PACKAGES 的环境变量来修改软件包缓存的位置。
例如,将位置从 C:\Users\Frank\.nuget\packages 更改为 F:\Users\Frank\.nuget\packages,只需将后者的值设置为名为“系统”环境变量 NUGET_PACKAGES,然后重新启动电脑即可。
参考资料:https://github.com/NuGet/Home/issues/1905

1
目前还没有改变这种方式的方法。你提到的“NuGetCachePath”环境变量是为了让修改版在Linux上与MonoDevelop一起使用:mrward/nuget

如果我将此文件夹设置为符号链接(mklink)到另一个驱动器上,它会工作吗? - cezarlamann
符号链接有时可以工作,但是我偶尔会在命令行上收到“对象未设置为引用”的错误消息。 - Menno Deij - van Rijswijk

-1

我找到了一个可以解决问题的设置,需要修改的配置文件是%APPDATA%\NuGet\NuGet.Config配置文件文档)。

但似乎有一个问题,更改repositoryPath也意味着.csproj的HintPath不再正确(至少对于非.net core项目而言)。由于.csproj很可能被添加到版本控制中,这真的是一个大问题。

以下是需要更改/添加到文件中的设置:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <config>
        <add key="repositoryPath" value="D:\Cache\NuGet2\packages" />
    </config>
    <!-- More settings follow -->

这样做是不起作用的,NuGet会愉快地将其恢复为之前的值。 - Menno Deij - van Rijswijk

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