मैं कमांड लाइन का उपयोग करके NuGet पैकेज कैश को कैसे साफ़ कर सकता हूं?


404

मैं विजुअल स्टूडियो मेनू टूल्सविकल्पनुगेट पैकेज मैनेजरजनरल : Clear Package Cacheबटन का उपयोग करके अपने विकास कंप्यूटर के NuGet पैकेज कैश को साफ़ कर सकता हूं ।

मैं कमांड लाइन पर ऐसा करना चाहूंगा। दुर्भाग्य से, मुझे nuget.exe के लिए संबंधित कमांड लाइन स्विच नहीं मिल रहा है।

क्या मैं कुछ भुल गया?


10
यह विकल्प मेरे 2015 VS वर्जन
spankmaster79

1
हाँ यह याद आ रही है। इसलिए मैं स्वीकृत उत्तर का उपयोग कर रहा हूं।
g.pickardou 18

जवाबों:


633

सबसे पहले, यहाँ से NuGet कमांड लाइन टूल डाउनलोड करें

इसके बाद, कमांड प्रॉम्प्ट खोलें और cdजिस डायरेक्टरी nuget.exeमें डाउनलोड किया गया था।

आप इस कमांड के साथ स्थानीय कैश को सूचीबद्ध कर सकते हैं:

nuget locals all -list

आप इस आदेश के साथ सभी कैश साफ़ कर सकते हैं:

nuget locals all -clear

संदर्भ: https://docs.nuget.org/consume/command-line-reference


10
3.3 के लिए अच्छी तरह से काम करता है, लेकिन केवल वर्तमान उपयोगकर्ता के लिए - मेरे पास हमारे बिल्ड सर्वर पर एक भ्रष्ट स्थानीय कैश के साथ एक मुद्दा था जो (दुख की बात है) स्थानीय प्रणाली के तहत चल रहा था, इसलिए कैश सूचीबद्ध नहीं था - वास्तविक स्थान `C: \ Windows था \ SysWOW64 \ config \ systemprofile \ AppData \ Local \ NuGet \ Cache`
Zhaph - बेन ड्यूगिड

1
हो सकता है कि आपको बिल्ड ऑपरेशन के समान उपयोगकर्ता के अंतर्गत स्पष्ट ऑपरेशन चलाना चाहिए। या तो एक समर्पित बिल्ड उपयोगकर्ता को कॉन्फ़िगर करने के साथ, या स्थानीय सिस्टम के तहत स्पष्ट चलाने के लिए एक चाल का उपयोग कर।
g.pickardou

2
क्या कैश से विशेष रूप से नुगेट को हटाने की कोई संभावना है? पूर्व के लिए: मैं कैश से नुगेट एक्स को निकालना चाहता हूं और नूगेट कैश लोकेशन के बारे में पता नहीं है, इस स्थिति में कैश से "एक्स" को कैसे निकालना है
user3610920

19
मुझे इस लिंक से डाउनलोड किए nuget update -selfगए nuget.exe को अपडेट करने के लिए दौड़ना पड़ा, अन्यथा मुझे त्रुटि मिलीUnknown commmand: 'locals'
ajbeaven

1
सुनिश्चित करें कि आप अपने VS को बंद कर देते हैं क्योंकि devenv.exeहो सकता है कि वे कुछ पैकेज फ़ोल्डर्स को ब्लॉक कर रहे हों और उन्हें साफ़ नहीं किया जाएगा।
शरीफ

226

Visual Studio 2017 में, मेनू टूल पर जाएँNuGet Package Managerपैकेज मैनेजर सेटिंग्स । आपको एक बटन मिल सकता है Clear All NuGet Cache(s):

यहां छवि विवरण दर्ज करें

यदि आप .NET कोर का उपयोग कर रहे हैं, तो आप इस आदेश के साथ कैश को साफ़ कर सकते हैं, जो .NET कोर उपकरण 1.0 के रूप में काम करना चाहिए:

dotnet nuget locals all --clear

7
तो यह वापस आ गया है! :-)। मैं उत्सुक हूं कि अगर इसे वीएस 2019 में फिर से हटा दिया जाएगा :-)
g.pickardou

13
कमांड लाइन का उपयोग dotnet nuget locals all --clearबहुत उपयोगी है, धन्यवाद
बोगिन

1
कमान dotnet nuget locals all --clearपूरी तरह से काम किया। मुझे कोई अतिरिक्त नगेट cmd टूल नहीं लगाना पड़ा। मेरा SSD फिर से सांस ले सकता है!
जिउ क्युबा

87

Nuget.exe सुविधा में यह सुविधा नहीं है, लेकिन यह देखते हुए कि NuGet कैश आपके कंप्यूटर पर केवल एक फ़ोल्डर है, आप फ़ाइलों को मैन्युअल रूप से हटा सकते हैं। बस इसे अपनी बैच फ़ाइल में जोड़ें:

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

5
पूछने के समय यह एकमात्र समाधान था, इसलिए सबसे अच्छा जवाब था। अब मैंने इसे अचिह्नित कर दिया है, और इसे आज़माने के बाद @ rmoore के जवाब को श्रेय दिया है।
g.pickardou

27

मेरे लिए मुझे यहाँ जाना था:

%userprofile%\.nuget\packages

2
यह सही रास्ता है जहाँ सभी नगेट्स डाउनलोड और रखे जाते हैं
आलोक राजसुकुमारन

2
और, मेरे पास 2.04 जीबी नगेट पैकेज थे: ओ
आलोक राजसुकुमारन

19
2.04GB के बारे में "हैलो दुनिया" नोड अनुप्रयोग के लिए node_modules रूप में ही है;)
tommed

20

यह rm8x के उत्तर को जोड़ता है ।

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\

अब हम इन्हें मैन्युअल रूप से हटा सकते हैं या जैसा कि rm8x सुझाता है, उपयोग करें nuget locals all -clear


हटाने की बात क्या है अगर नगेट उन सभी को हर निर्माण के साथ उत्पन्न करेगा? क्यों nuget वास्तव में इतने सारे फ़ोल्डर्स बना रहा है?
बटमासी

2
@batmaci क्योंकि समय के साथ संकुल अपडेट कर दिया और उसे अपने साथ खत्म हो जाएगा Batmaci 1.0, Batmaci 1.1, Batmaci 1.2जहां आप सभी की जरूरत नवीनतम एक है
Simon_Weaver

कैश में NuGet पैकेज नहीं खोजने के साथ हमारे बिल्ड सर्वर पर हमें कभी-कभी समस्या होती थी। हमने इसे हमेशा बिल्ड की शुरुआत में कैशे क्लियर करके हल किया।
स्टीव राइट

14

ध्यान दें कि dnxHTTP परिणाम खिलाने के लिए एक अलग कैश है:

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सीएलआई टूल पर कमांड क्या होगा ।

... और यहाँ यह है:

dotnet restore --no-cache

मैं रुस्लान से ऊपर के दृष्टिकोण के साथ जाऊंगा क्योंकि मेरे पास कुछ मुद्दे हैं जो पैकेज के साथ भी गुजर रहे हैं -कोई-कैश नहीं
एलेक्सज़

रनिंग dotnet restore --no-cacheने मेरे लिए काम किया, लेकिन मुझे इसे प्रशासक के रूप में चलने वाले
पॉवरशेल

10

dotnet nuget locals all --clear

यदि आप .NET कोर का उपयोग कर रहे हैं।


मैं आपको दोपहर के भोजन पर जाने से पहले ऐसा करने का सुझाव दूंगा।
हेलजेट 16

5

यदि आपको अपने बिल्ड सर्वर / एजेंट के लिए NuGet कैश साफ़ करने की आवश्यकता है, तो आप यहाँ NuGet पैकेज के लिए कैश पा सकते हैं:

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

उदाहरण:

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

1
मैंने इसे अधिक पठनीय बनाने के लिए पथ को चिह्नित करने की स्वतंत्रता ले ली, और [विंडोज़ डीआईआर] की जगह ली %windir%, जो स्वचालित रूप से आपको सही निर्देशिका में डाल देगा, जैसे कि विंडोज़ एक्सप्लोरर।
केजरतन

3

आप PowerShell का उपयोग कर सकते हैं (मेरे जैसे ही)।

उदाहरण के लिए:

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

या 'शांत' मोड (त्रुटि संदेशों के बिना):

rm $env:LOCALAPPDATA\NuGet\Cache\*.nupkg 2> $null
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.