Как очистить кеш пакета NuGet с помощью командной строки?
Я могу очистить кэш пакета NuGet моего компьютера разработчика с помощью VS Tools/Options/NuGet Package Manager/General: кнопка [Clear Package Cache].
Я хотел бы сделать это в командной строке. К сожалению, я не могу найти соответствующий ключ командной строки для nuget.exe.
Я что-то пропустил?
14 ответов
Сначала загрузите инструмент командной строки NuGet отсюда.
Затем откройте командную строку и cd
в каталог, в который nuget.exe
был загружен.
Вы можете перечислить локальные кэши с помощью этой команды:
nuget locals all -list
Вы можете очистить все кеши с помощью этой команды:
nuget locals all -clear
Ссылка: https://docs.nuget.org/consume/command-line-reference
В Visual Studio 2017 перейдите в раздел ИНСТРУМЕНТЫ -> Диспетчер пакетов Nuget -> Настройки диспетчера пакетов. Вы можете найти кнопку "Очистить все кэши NuGet"
Если вы используете.NET Core, вы можете очистить кеш с помощью этой команды, которая должна работать с.NET Core tools 1.0:
dotnet nuget locals all --clear
dotnet nuget locals all --clear
Если вы используете.NET Core.
Утилита nuget.exe не имеет этой функции, но, видя, что кэш NuGet - это просто папка на вашем компьютере, вы можете удалить файлы вручную. Просто добавьте это в ваш пакетный файл.
del %LOCALAPPDATA%\NuGet\Cache\*.nupkg /q
Для меня я должен был пойти сюда:
%userprofile%\.nuget\packages
Это добавляет к ответу rmoore.
Загрузите и установите инструмент командной строки NuGet.
- от Chocolaty -> https://chocolatey.org/packages/NuGet.CommandLine
- от NuGet.org -> https://www.nuget.org/
Перечислите всех наших местных жителей.
$ 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
,
Очистка кеша
С ядром dotnet cli
dotnet nuget locals all --clear
С Visual Studio 2017
- Перейдите в меню Инструменты → Диспетчер пакетов NuGet → Параметры диспетчера пакетов.
- Нажмите Clear All NuGet Cache(s):
С помощью nuget cli
Загрузите и установите инструмент командной строки NuGet.
- От Chocolatey → https://chocolatey.org/packages/NuGet.CommandLine
- из NuGet.org → https://www.nuget.org/packages/NuGet.CommandLine/
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
Расположение кеша
Окна
%userprofile%\.nuget\packages
Linux
~/.nuget/
Построить сервер
%windir%/ServiceProfiles/[account under build service runs]\AppData\Local\NuGet\Cache
Пример:
C:\Windows\ServiceProfiles\NetworkService\AppData\Local\NuGet\Cache
Этот ответ представляет собой набор всех существующих ответов для вашего удобства.
Обратите внимание, что dnx
имеет другой кеш для результатов 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
Если вам нужно очистить кеш Nuget для вашего сервера / агента сборки, вы можете найти кеш для пакетов Nuget здесь:
%windir%/ServiceProfiles/[account under build service runs]\AppData\Local\NuGet\Cache
Пример: C:\Windows\ServiceProfiles\NetworkService\AppData\Local\NuGet\Cache
Вы можете использовать PowerShell для (так же, как я).
Например:
rm $env:LOCALAPPDATA\NuGet\Cache\*.nupkg
или "тихий" режим (без сообщений об ошибках):
rm $env:LOCALAPPDATA\NuGet\Cache\*.nupkg 2> $null
Я оказался здесь, потому что пытался выяснить, как удалить конкретный пакет nuget из кеша. В приведенных выше ответах говорится об удалении всех локальных пакетов с помощью
nuget locals all -clear
.
Если кто-то заинтересован в очистке определенного пакета, я делюсь своими выводами:
- В настоящее время вы не можете очистить конкретный пакет с помощью
nuget
илиdotnet
cli. Чтобы исправить это, существует проблема с github: https://github.com/NuGet/Home/issues/5713 - На данный момент вам нужно прибегнуть к командам файловой системы (как упоминалось в некоторых из приведенных выше ответов), чтобы удалить конкретный пакет. Для mac / linux это было
rm -rf ~/.nuget/packages/<package-name>
- На самом деле мне был нужен способ удалить кеш определенного пакета, который я собирался повторно опубликовать в локальном репозитории nuget (с использованием фиксированного номера версии, чтобы упростить локальную разработку). Я добился этого, добавив в
.csproj
файл библиотеки nuget-packaged:
<Project>
<Target Name="DeleteLocalCache" BeforeTargets="Pack">
<RemoveDir Directories="$(NugetPackageRoot)/$(PackageId.ToLower())/1.0.0-local"/>
</Target>
</Project>
Очистить кэш 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
Для тех, кто установил
nuget
на RHEL7 (например, из репозитория EPEL), используя
sudo yum install nuget
, вот где находится локальный кеш:
~/.local/share/NuGet/Cache
Я видел свои nugets в этой папке (на сервере сборки): c:\Windows\System32\config\systemprofile.nuget\packages\