NuGet paket önbelleğini komut satırını kullanarak nasıl temizleyebilirim?


405

Geliştirme bilgisayarımın NuGet paket önbelleğini Visual Studio menüsü Araçlar → Seçenekler → NuGet Paket Yöneticisi → Genel : Clear Package Cachedüğmesini kullanarak temizleyebilirim .

Bunu komut satırında yapmak istiyorum. Ne yazık ki, nuget.exe ile ilgili bir komut satırı anahtarı bulamıyorum.

Bir şey mi kaçırdım?


10
2015 VS
— Sürümümde

1
evet eksik. Bu yüzden kabul edilen cevabı kullanıyorum.
— g.pickardou

Yanıtlar:


633

İlk olarak, NuGet komut satırı aracını buradan indirin .

Ardından, bir komut istemi ve indirilen cddizine açın nuget.exe.

Yerel önbellekleri bu komutla listeleyebilirsiniz:

nuget locals all -list

Bu komutla tüm önbellekleri temizleyebilirsiniz:

nuget locals all -clear

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


10
3.3 için güzel çalışıyor, ancak sadece geçerli kullanıcı için - Yerel sunucu altında çalışan (ne yazık ki) yerel bir önbellek sorunu vardı, bu yüzden önbellek listelenmedi - gerçek konum `C: \ Windows \ SysWOW64 \ config \ systemprofile \ AppData \ Local \ NuGet \ Cache`
— Zhaph - Ben Duguid

1
Belki de açık işlemi derleme işlemi ile aynı kullanıcı altında çalıştırmalısınız. Özel bir yapı kullanıcısı yapılandırmakla veya Yerel Sistem altında temizlemeyi çalıştırmak için bir hile kullanarak.
— g.pickardou

2
Belirli NuGet'leri önbellekten kaldırma olasılığı var mı? Örneğin: NuGet X'i önbellekten kaldırmak istiyorum ve NuGet önbellek konumunun farkında değilim, bu durumda "X" tek başına önbellekten nasıl kaldırılır
— user3610920

19
Bu bağlantıdan indirdiğim nuget.exe dosyasınınuget update -self güncellemek için çalıştırmak zorunda kaldım aksi halde hatayı aldımUnknown commmand: 'locals'
— ajbeaven

1
VS'nizi kapattığınızdan emin olun, çünkü devenv.exebazı paket klasörlerini engelliyor olabilir ve bunlar temizlenmez.
— Şerif

227

Visual Studio 2017'de Araçlar → NuGet Paket Yöneticisi → Paket Yöneticisi Ayarları menüsüne gidin . Bir düğme bulabilirsiniz Clear All NuGet Cache(s):

Resim açıklamasını buraya girin

.NET Core kullanıyorsanız, .NET Core tools 1.0'dan itibaren çalışması gereken bu komutla önbelleği temizleyebilirsiniz:

dotnet nuget locals all --clear

7
Yani geri döndü! :-). VS 2019'da tekrar kaldırılıp kaldırılmayacağını merak ediyorum :-)
— g.pickardou

13
komut satırı kullanımı dotnet nuget locals all --clearçok yararlı, teşekkürler
— Boggin

1
Komuta dotnet nuget locals all --clearmükemmel çalıştı. Herhangi bir ekstra nuget cmd aracı yüklemek zorunda kalmadım. SSD'm tekrar nefes alabilir!
— Jiří Kuba

87

Nuget.exe yardımcı programı bu özelliğe sahip değildir, ancak NuGet önbelleğinin yalnızca bilgisayarınızdaki bir klasör olduğunu görünce dosyaları el ile silebilirsiniz. Bunu toplu iş dosyanıza eklemeniz yeterlidir:

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

5
Bunun tek çözüm olduğunu sorduğunuzda, en iyi cevap da buydu. Şimdi işaretini kaldırdım ve denedikten sonra @ rmoore'un cevabını kredilendirdim.
— g.pickardou

27

Benim için buraya girmek zorunda kaldım:

%userprofile%\.nuget\packages

2
Bu, tüm külçelerin indirilip saklandığı doğru yoldur
— Alok Rajasukumaran

2
Ve, 2.04 Gb nuget paketlerim vardı: o
— Alok Rajasukumaran

19
2.04GB "merhaba dünya" düğüm uygulaması için node_modules ile aynıdır;)
— 9'da

20

Bu rm8x'in cevabına katkıda bulunur .

NuGet komut satırı aracını indirin ve yükleyin.

Tüm yerlilerimizi listeleyin:

$ 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\

Şimdi bunları manuel olarak veya rm8x'in önerdiği gibi kullanabiliriz nuget locals all -clear.


nuget her derlemede hepsini üretecekse, silmenin anlamı nedir? nuget neden bu kadar çok klasör oluşturuyor?
— batmaci

2
zamanla paketler güncellenmeyen ve ile bitireceğiz @batmaci çünkü Batmaci 1.0, Batmaci 1.1, Batmaci 1.2ihtiyacınız olan tüm son biridir nerede
— Simon_Weaver

Derleme sunucumuzda, önbellekte NuGet paketleri bulamadığımız için sorun yaşadık. Yapının başlangıcında önbelleği her zaman temizleyerek çözdük.
— Steve Wright

14

dnxHTTP sonuçlarını beslemek için farklı bir önbellek bulunduğunu unutmayın :

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/

Hangi ile temizleyebilirsiniz

dnu clear-http-cache

Şimdi sadece yeni dotnetCLI aracında komutun ne olacağını bulmamız gerekiyor .

... ve işte burada:

dotnet restore --no-cache

Ruslan'dan yukarıdaki yaklaşımla devam edecektim, hatta paketleri geçerken bazı sorunlar yaşıyorum
— Alexz

Koşmak dotnet restore --no-cachebenim için çalıştı, ama bunu yönetici olarak çalışan bir Powershell isteminden yapmak zorunda kaldım
— shanabus

10

dotnet nuget locals all --clear

.NET Core kullanıyorsanız.


Öğle yemeğine gitmeden önce bunu yapmanızı öneririm.
— Helzgate

5

Yapı sunucunuz / ajanınız için NuGet önbelleğini temizlemeniz gerekiyorsa, NuGet paketleri için önbelleği burada bulabilirsiniz:

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

Misal:

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

1
Daha okunaklı hale getirmek için yolu işaretleme ve [windows dir] ile değiştirmenin özgürlüğünü aldım, %windir%örneğin Windows Gezgini'ne girdiğinizde sizi otomatik olarak doğru dizine koyacağım.
— Kjartan

3

PowerShell'i de kullanabilirsiniz (benimle aynı).

Örneğin:

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

Veya 'sessiz' mod (hata mesajları olmadan):

rm $env:LOCALAPPDATA\NuGet\Cache\*.nupkg 2> $null
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.