I can clear my development computer's NuGet package cache using Visual Studio menu Tools → Options → NuGet Package Manager → General: Clear Package Cache button.
I would like to do this on the command line. Unfortunately, I can not find a related command line switch for nuget.exe.
Did I miss something?
First, download the NuGet command line tool from here.
Next, open a command prompt and cd
to the directory to which nuget.exe
was downloaded.
You can list the local caches with this command:
nuget locals all -list
You can clear all caches with this command:
nuget locals all -clear
Reference: https://docs.nuget.org/consume/command-line-reference
In Visual Studio 2017, go to menu Tools → NuGet Package Manager → Package Manager Settings. You may find out a button, Clear All NuGet Cache(s):
https://i.stack.imgur.com/Lg2Mo.jpg
If you are using .NET Core, you may clear the cache with this command, which should work as of .NET Core tools 1.0:
dotnet nuget locals all --clear
dotnet nugget locals all -c
does not delete %LOCALAPPDATA%\NuGet\Cache\ folder.
The nuget.exe utility doesn't have this feature, but seeing that the NuGet cache is simply a folder on your computer, you can delete the files manually. Just add this to your batch file:
del %LOCALAPPDATA%\NuGet\Cache\*.nupkg /q
dotnet nuget locals all --clear
If you're using .NET Core.
For me I had to go in here:
%userprofile%\.nuget\packages
This adds to rm8x's answer.
Download and install the NuGet command line tool.
From Chocolatey → https://chocolatey.org/packages/NuGet.CommandLine
from NuGet.org → https://www.nuget.org/
List all of our locals:
$ 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\
We can now delete these manually or as rm8x suggests, use nuget locals all -clear
.
Batmaci 1.0
, Batmaci 1.1
, Batmaci 1.2
where all you need is the latest one
Note that dnx
has a different cache for feeding HTTP results:
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/
Which you can clear with
dnu clear-http-cache
Now we just need to find out what the command will be on the new dotnet
CLI tool.
...and here it is:
dotnet restore --no-cache
dotnet restore --no-cache
worked for me, but I had to do it from a Powershell prompt running as administrator
If you need to clear the NuGet cache for your build server/agent you can find the cache for NuGet packages here:
%windir%/ServiceProfiles/[account under build service runs]\AppData\Local\NuGet\Cache
Example:
C:\Windows\ServiceProfiles\NetworkService\AppData\Local\NuGet\Cache
%windir%
, which will automatically put you in the right directory when entered into e.g. windows explorer.
You can use PowerShell too (same as me).
For example:
rm $env:LOCALAPPDATA\NuGet\Cache\*.nupkg
Or 'quiet' mode (without error messages):
rm $env:LOCALAPPDATA\NuGet\Cache\*.nupkg 2> $null
I ended up here because I was trying to figure out how to delete a specific nuget package from the cache. The answers above talk about deleting all local packages using nuget locals all -clear
.
In case anyone is interested in clearing a specific package, I'm sharing my findings:
You can't currently clear a specific package using the nuget or dotnet cli. There is a github issue open to fix this: https://github.com/NuGet/Home/issues/5713
For now, you have to resort to filesystem commands (as some of the answers above mention) to delete the specific package. For mac/linux, it was rm -rf ~/.nuget/packages/
What I actually needed was a way to delete the cache of a specific package that I was about to re-publish to a local nuget repository (using a fixed version number to make local development easier). I accomplished this by adding the following to the .csproj file of the nuget-packaged library:
<Project>
<Target Name="DeleteLocalCache" BeforeTargets="Pack">
<RemoveDir Directories="$(NugetPackageRoot)/$(PackageId.ToLower())/1.0.0-local"/>
</Target>
</Project>
For those who installed nuget
on RHEL7 (e.g., from the EPEL repository) using sudo yum install nuget
, here is where local cache is located:
~/.local/share/NuGet/Cache
I've saw my nugets in this folder (on build server): c:\Windows\System32\config\systemprofile.nuget\packages\
Success story sharing
nuget update -self
to update the nuget.exe I downloaded from this link otherwise I got the errorUnknown commmand: 'locals'
devenv.exe
might be blocking some package folders and they won't be cleared.