如何使用命令行清除NuGet包缓存?

时间:2015-06-19 08:16:40

标签: nuget nuget-package

我可以使用VS Tools / Options / NuGet Package Manager / General清除我的开发计算机的NuGet包缓存:[Clear Package Cache]按钮。

我想在命令行中执行此操作。不幸的是我找不到nuget.exe的相关命令行开关。

我错过了什么吗?

11 个答案:

答案 0 :(得分:543)

首先,从here下载NuGet命令行工具。

接下来,打开命令提示符并cd到下载nuget.exe的目录。

您可以使用以下命令列出本地缓存:

nuget locals all -list

您可以使用此命令清除所有缓存:

nuget locals all -clear

参考:https://docs.nuget.org/consume/command-line-reference

答案 1 :(得分:183)

在Visual Studio 2017中,转到工具 - > Nuget包管理器 - >包管理器设置。你可能会发现一个按钮“Clear All NuGet Cache(s)” enter image description here

如果您使用的是.NET Core,则可以使用此命令清除缓存,该命令应该从.NET Core工具1.0开始工作:

dotnet nuget locals all --clear

答案 2 :(得分:84)

nuget.exe实用程序没有此功能,但是看到NuGet Cache只是计算机上的文件夹,您可以手动删除这些文件。只需将其添加到批处理文件中即可。

del %LOCALAPPDATA%\NuGet\Cache\*.nupkg /q

答案 3 :(得分:24)

对我来说,我必须进去:

%userprofile%\.nuget\packages

答案 4 :(得分:17)

这增加了rmoore的答案。

下载并安装NuGet命令行工具。

列出我们所有的当地人。

$ nuget locals all -list
http-cache: C:\Users\MyUser\AppData\Local\NuGet\v3-cache
packages-cache: C:\Users\MyUser\AppData\Local\NuGet\Cache
global-packages: C:\Users\MyUser\.nuget\packages\

我们现在可以手动删除这些内容,或者正如rmoore建议的那样,使用nuget locals all -clear

答案 5 :(得分:10)

请注意,dnx为Feed http结果提供了不同的缓存

Microsoft .NET Development Utility Clr-x86-1.0.0-rc1-16231
   CACHE https://www.nuget.org/api/v2/
   CACHE http://192.168.148.21/api/odata/

您可以使用

清除
dnu clear-http-cache

现在我们只需要找出新dotnet cli工具上的命令是什么

更新 ......这里是:

dotnet restore --no-cache

答案 6 :(得分:7)

清除3.x +缓存(使用任一命令)

dotnet nuget locals http-cache --clear
nuget locals http-cache -clear

清除2.x缓存(仅限NuGet CLI 3.5和更早版本)

nuget locals packages-cache -clear

清除全局软件包文件夹(使用任一命令)

dotnet nuget locals global-packages --clear
nuget locals global-packages -clear

清除临时缓存(使用任一命令)

dotnet nuget locals temp --clear
nuget locals temp -clear

清除插件缓存(使用任一命令)

dotnet nuget locals plugins-cache --clear
nuget locals plugins-cache -clear

清除所有缓存(使用任一命令)

dotnet nuget locals all --clear
nuget locals all -clear

当前未在Visual Studio中打开的项目使用的任何程序包都不会从global-packages文件夹中清除。

For more details

答案 7 :(得分:5)

如果您需要为构建服务器/代理清除Nuget缓存,可以在此处找到Nuget包的缓存:

%windir%/ServiceProfiles/[account under build service runs]\AppData\Local\NuGet\Cache

实施例: C:\的Windows \ ServiceProfiles \网络服务\应用程序数据\本地\的NuGet \缓存

答案 8 :(得分:3)

您可以使用powershell(与我相同)。

例如:

rm $env:LOCALAPPDATA\NuGet\Cache\*.nupkg

或'quiet'模式(没有错误消息):

rm $env:LOCALAPPDATA\NuGet\Cache\*.nupkg 2> $null

答案 9 :(得分:3)

清除缓存

使用dotnet核心cli

dotnet nuget locals all --clear

使用Visual Studio 2017

  1. 转到菜单工具 NuGet软件包管理器软件包管理器设置
  2. 单击清除所有NuGet缓存

visual studio NuGet Package Manager General settings screenshot

使用nuget cli

下载并安装NuGet命令行工具。

nuget locals all -clear

使用Windows命令行

del %LOCALAPPDATA%\NuGet\Cache\*.nupkg /q

(可以在.bat文件中使用)

使用PowerShell

rm $env:LOCALAPPDATA\NuGet\Cache\*.nupkg

或“安静”模式(无错误消息):

rm $env:LOCALAPPDATA\NuGet\Cache\*.nupkg 2> $null

缓存位置

Windows

%userprofile%\.nuget\packages

Linux

~/.nuget/

构建服务器

%windir%/ServiceProfiles/[account under build service runs]\AppData\Local\NuGet\Cache

示例:

C:\Windows\ServiceProfiles\NetworkService\AppData\Local\NuGet\Cache

此答案是所有现有答案的汇总,为您提供方便

答案 10 :(得分:2)

dotnet nuget locals all --clear

如果您使用的是.NET Core。