更改Visual Studio 2017使用的NuGet包文件夹

时间:2017-04-21 11:43:14

标签: nuget .net-core visual-studio-2017

在任何基于packagescsproj的.NET Core项目中,不再有project.json解决方案文件夹。

NuGet CLI获取已使用的缓存文件夹列表:

nuget locals all -list

响应:

http-cache: C:\Users\<foo>\AppData\Local\NuGet\v3-cache
global-packages:  C:\Users\<foo>\.nuget\packages\
temp: C:\Users\<foo>\AppData\Local\Temp\NuGetScratch

如何更改或覆盖这些位置?

3 个答案:

答案 0 :(得分:47)

缓存位置

.NET Core和Visual Studio 2017不再存在解决方案本地包文件夹。

NuGet is now fully integrated into MSBuild:

  

不再使用解决方案本地包文件夹 - 现在是包   解决了%userdata%.nuget上的用户缓存,而不是   解决方案特定包文件夹这使得PackageReference执行   通过使用共享文件夹,可以更快地消耗更少的磁盘空间   工作站上的软件包。

NuGet 4.0+使用至少两个全局包位:

  • 特定于用户:def load_json(filename): alltext = [] i = 0 with open(filename, 'r') as fd: for line in fd: textLine = json.loads( line ) alltext.append( textLine ) print i i = i + 1 return alltext if __name__ == "__main__": test = load_json('file.json')
  • 整个机器:%userprofile%\.nuget\packages\

您可以使用以下控制台命令列出所有特定于用户的文件夹:

%ProgramFiles(x86)%\Microsoft SDKs\NuGetPackages\"

请注意,此处未列出计算机范围的文件夹。但是,它是在Visual Studio设置中定义的:

nuget locals all -list

配置文件

Options -> NuGet Package Manager -> Package Sources 个文件are located here

  • 特定于用户:NuGet.config
  • 整个机器:%APPDATA%\NuGet\

可以在多个级别更改和覆盖NuGet设置:

  • 项目
  • 溶液
  • 用户

甚至更多!在此处详细了解%ProgramFiles(x86)%\NuGet\Config\分层优先级排序:How settings are applied

例如,NuGet.config参数更改包缓存位置。请看这个globalPackagesFolder示例:

NuGet.config

答案 1 :(得分:1)

来自MS docs

全局软件包

  • Windows:%userprofile%.nuget \ packages
  • Mac / Linux:〜/ .nuget / packages

使用 NUGET_PACKAGES 环境变量,globalPackagesFolder或repositoryPath配置设置(分别使用PackageReference和packages.config时)或RestorePackagesPath MSBuild属性(仅适用于MSBuild)覆盖。 环境变量优先于配置设置。

答案 2 :(得分:0)

将.nuget文件夹(c:\ users {username} .nuget)从具有Internet连接和已更新软件包的开发PC复制到没有Internet连接的PC对我也有用。 / p>