मैं अपने समाधान में किसी भी परियोजना द्वारा संदर्भित नहीं किए गए नुगेट संकुल को कैसे हटाऊं?


141

किसी तरह VS2012 और .NET 4.5 में अपग्रेड के दौरान, मैं NuGet को भ्रमित करने में कामयाब रहा। पैकेज प्रबंधक (और संकुल फ़ोल्डर) में वे पैकेज दिखाई देते हैं जिन्हें मैं हटा नहीं सकता (मेरा मानना ​​है कि वे विरासत ASP.NET NuGet पैकेज हैं जिन्हें नए संस्करण के साथ नए पैकेज नामों से बदल दिया गया है। प्रत्येक में केवल एक प्रबंधित बटन है। - लेकिन कोई अनइंस्टॉल बटन नहीं है। और जब आप यह देखते हैं कि उनका उपयोग कहां किया जाता है, तो आप देख सकते हैं कि वे समाधान के किसी भी प्रोजेक्ट से संदर्भित नहीं हैं? वे एक अनइंस्टॉल प्रदर्शित नहीं कर रहे हैं ?

जवाबों:


108

आप कमांड के साथ पैकेज मैनेजर कंसोल का उपयोग कर सकते हैं: Uninstall-Package PackageIdइसे हटाने के लिए, या समाधान फ़ोल्डर के तहत 'पैकेज' फ़ोल्डर से पैकेज फ़ोल्डर को हटा दें। पैकेज मैनेजर कंसोल के बारे में अधिक जानकारी आप यहाँ पा सकते हैं: http://docs.nuget.org/docs/reference/package-manager-console-powershell-reference


8
धन्यवाद पावेल। मुझे लग रहा था कि आप फ़ोल्डर्स को हटा सकते हैं। यह थोड़ा विवादास्पद है क्योंकि मुझे मैन्युअल रूप से यह सुनिश्चित करना है कि कोई भी पैकेज संदर्भित नहीं है (वे दिखाई नहीं देते हैं)। मैं अभी भी यह जानने के लिए उत्सुक हूं कि पैकेज प्रबंधक अनइंस्टॉल (या हटाएं) बटन क्यों नहीं दिखाता है।
हावर्ड पिंसले

2
समाधान स्तर पर पैकेज प्रबंधक समाधान से परियोजनाओं के लिए सभी पैकेज संदर्भों को प्रदर्शित करता है और अतिरिक्त सभी पैकेज जो पैकेज फ़ोल्डर में रखे जाते हैं, लेकिन संदर्भित नहीं होते हैं। इस पैकेज के लिए UI में कोई स्थापना रद्द करने की क्षमता नहीं है। मैं सहमत हूं कि यह गलत व्यवहार का परिणाम है, लेकिन इस मामले में आपको इसे मैन्युअल रूप से जांचना चाहिए। और जब आप सुनिश्चित करेंगे कि आपको इसकी आवश्यकता है या नहीं, तो पैकेज को हटा दें या इसे पुनः स्थापित करें।
पावेल बख्शी

1
केवल फ़ोल्डर को हटाकर और NuGet पर वापस जाकर पैकेज देखें, यह किसी भी तरह प्रदर्शित करता है जैसा कि इसके पास हरे रंग की टिक के साथ स्थापित किया गया है, कंसोल का उपयोग करके उचित स्थापना रद्द करना बेहतर है।
k80sg

1
@ysrb, इसकी एक शक्तियुक्त कमान जो क्रिया-संज्ञा जाती है जैसे कि गेट-यूज़र या रिमूव-आइटम, आपका उदाहरण संज्ञा-क्रिया है
निक यंग

1
@ यसब जैसा कि निक यंग कहते हैं, और इसके अलावा, यह एक भयावह प्रशंसा होगी Install-Package
प्रोफक

159

मुझे इसके लिए वर्कअराउंड मिल गया है।

  1. पैकेज पुनर्स्थापना और स्वचालित जाँच सक्षम करें (विकल्प / पैकेज प्रबंधक / सामान्य)
  2. यदि आप घबराए हुए हैं, तो पैकेज फ़ोल्डर की संपूर्ण सामग्री हटाएं (रीसायकल बिन में!)
  3. समाधान के लिए Nuget संकुल प्रबंधित करें
  4. रिस्टोर बटन पर क्लिक करें।

NuGet केवल आपके समाधान में उपयोग किए जाने वाले पैकेजों को पुनर्स्थापित करेगा । आप पैकेज का एक अच्छा, सुव्यवस्थित सेट के साथ समाप्त करते हैं।


1
इस नहीं होगा नहीं से पैकेज को निकाल packages.configऔर नहीं परियोजना से संदर्भ निकाल?
कोडकस्टर

1
@CodeCaster आपके दोहरे नकारात्मक को पार्स करने के लिए कठिन है। कॉन्फ़िगरेशन और संदर्भों से कुछ भी नहीं निकाला जाएगा। यहाँ विचार NuGet संकुल को हटाने के लिए है जो अब संदर्भित नहीं हैं
जेम्स एल

1
बहुत बढ़िया जवाब! यदि आप TFS का उपयोग कर रहे हैं, तो आपको स्रोत काउंटरोल एक्सप्लोरर में /। पैकेज के अंदर की सभी सामग्री को पहले ही हटा देना चाहिए ताकि बिल्ड मशीन जैसे अन्य क्लाइंट अनावश्यक आइटम भी हटा दें।
अलेक्जेंडर श्मिट

4
@ sprinter252, यदि आप संकुल पुनर्स्थापना का उपयोग कर रहे हैं, तो आप पहले स्थान पर संकुल को स्रोत नियंत्रण में जाँचने वाले नहीं हैं। पैकेज पुनर्स्थापना का उपयोग करने के मुख्य लाभों में से एक है। पैकेज रिस्टोर में कनवर्ट करने के हिस्से के रूप में, पैकेज फ़ोल्डर पर एक 'अनदेखा' नियम रखा जाना चाहिए।
कार्ल बुसेमा

@CarlBussema तुम सही हो। नए NuGet- संस्करण के बाद से यह इतना महत्वपूर्ण नहीं है क्योंकि Nuget किसी भी बायनेरिज़ को सबफ़ोल्डर्स में नहीं जोड़ेगा। तो आप केवल फ़ोल्डर संरचना प्राप्त कर रहे हैं। मेरी टिप्पणी TFS के डिफ़ॉल्ट व्यवहार (पैकेज-फ़ोल्डर शामिल) से संबंधित थी। टीएफएस पर कहीं भी ध्यान नहीं दिया जाता है ;-)। ज़ामरीन के साथ मिश्रित परियोजनाओं के लिए महत्वपूर्ण।
अलेक्जेंडर श्मिट

17

सबसे पहले पैकेज मैनेजर कंसोल खोलें। फिर ड्रॉपडाउन सूची से अपनी परियोजना का चयन करें। और nuget संकुल की स्थापना रद्द करने के लिए निम्नलिखित कमांड चलाएँ।

Get-Package

आपके द्वारा स्थापित सभी पैकेज प्राप्त करने के लिए।

और फिर

Uninstall-Package PagedList.Mvc

--- PagedList.MVC नामक पैकेज की स्थापना रद्द करने के लिए

संदेश

PM> Uninstall-Package PagedList.Mvc
Successfully removed 'PagedList.Mvc 4.5.0.0' from MCEMRBPP.PIR.

इस जवाब ने मेरे लिए पूरी तरह से काम किया। मेरी स्थिति यह थी कि पैकेज केवल संवाद के अपडेट टैब के तहत दिखाया गया था ... और जब मैंने अपडेट अपडेट किया तो कोई भी प्रोजेक्ट पैकेज स्थापित नहीं था - इसलिए इसे अपडेट करने या हटाने का कोई तरीका नहीं था।
azarc3

8

यदि आप Nuget पैकेज को हटाना / अनइंस्टॉल करना चाहते हैं, जो आपके समाधानों में कई परियोजनाओं पर लागू होता है, तो निम्न पर जाएं:

  1. उपकरण-> नुगेट पैकेज मैनेजर -> समाधान के लिए नुगेट पैकेज प्रबंधित करें

  2. बाएं कॉलम में जहां 'इंस्टॉल किए गए पैकेज' हैं, वहां 'ऑल' को चुनें, इसलिए आपको इंस्टॉल किए गए पैकेजों की एक सूची दिखाई देगी और उनके चारों ओर मैनेज बटन दिखाई देगा।

  3. मैनेज बटन का चयन करें और आपको एक पॉप आउट मिलेगा, प्रोजेक्ट नाम में चेकबॉक्स को अचयनित करें और इसे ठीक करें

बाकी का काम पैकेज मैनेजर आपके लिए करेगा।


1
यह निश्चित रूप से जवाब है जिसकी मुझे तलाश थी, धन्यवाद!
साल

3

यदि आपने अनइंस्टॉल-पैकेज उपयोगिता का उपयोग करके पैकेज को हटा दिया है और समाधान के तहत पैकेज निर्देशिका से वांछित पैकेज को हटा दिया है (और आपको अभी भी त्रुटि हो रही है), तो कोड संपादक में * .csproj फ़ाइल खोलें और मैन्युअल रूप से टैग हटा दें। उदाहरण के लिए, मैं Nuget पैकेज Xamarin.Forms.Alias से छुटकारा पाना चाहता था और मैंने * .csproj फ़ाइल से इन पंक्तियों को हटा दिया।

Msbuild स्क्रिप्ट से नगेट पैकेज हटाना

और आखिरकार, विज़ुअल स्टूडियो (प्रोजेक्ट फ़ाइल बदलने के बाद) में संकेत दिए जाने पर अपनी परियोजना को पुनः लोड करना न भूलें। मैंने इसे Visual Studio 2015 पर आज़माया, लेकिन इसे Visual Studio 2010 और इसके बाद भी काम करना चाहिए।

उम्मीद है की यह मदद करेगा।


2

एक विकल्प, अप्रयुक्त पैकेज को स्थापित करें जिसे आप अपने समाधान की किसी भी परियोजना में हटाना चाहते हैं, उसके बाद, इसे अनइंस्टॉल करें और Nuget भी हटा देगा।

यहां एक उचित अनइंस्टालर की जरूरत है।


क्या इसे फिर से स्थापित किए बिना इसे ठीक से अनइंस्टॉल करने का एक तरीका है?
नोक्स

2

समाधान 1

पैकेज प्राप्त करने और इस तरह से एकल विवरण में निकालने के लिए पॉवरशेल पाइपलाइन का उपयोग करें

Get-Package | Uninstall-Package

समाधान २

यदि आप चयनित संकुल को अनइंस्टॉल करना चाहते हैं तो इन चरणों का पालन करें

  1. उपयोग GetPackagesपैकेजों की सूची प्राप्त करने के लिए
  2. डाउनलोड निंबले पाठ सॉफ्टवेयर
  3. के आउटपुट की प्रतिलिपि बनाएँ GetPackagesनिम्बलटेक्स्ट (सूची विंडो में प्रत्येक पंक्ति के लिए)
  4. (यदि आवश्यक हो तो कॉलम सेपरेटर सेट करें
  5. प्रकार Uninstall-Package $0(पैटर्न विंडो का उपयोग करके प्रतिस्थापित)
  6. परिणाम कॉपी करें और उन्हें पैकेज मैनेज कंसोल में पेस्ट करें

वह सब लोग हो।


1

एक NuGet पैकेज दूसरे NuGet पैकेज को संदर्भित कर सकता है। इसलिए, कृपया इंटर-पैकेज निर्भरता के बारे में बहुत सावधान रहें। मैंने बस एक Google मानचित्र पैकेज की स्थापना रद्द कर दी थी और बाद में इसे अंतर्निहित पैकेजों जैसे कि Newtonsoft, Entity Framework, आदि की स्थापना रद्द कर दी थी।

इसलिए, विशेष रूप से पैकेज फ़ोल्डर से विशेष पैकेज को हटाना सुरक्षित होगा।


1

पैकेज मैनेजर कंसोल विंडो से, अक्सर पैकेज को स्थापित करने के लिए जो भी कमांड का उपयोग किया जाता है, उस पैकेज की स्थापना रद्द करने के लिए उपयोग किया जा सकता है। बस INSTALL कमांड को UNINSTALL से बदलें ।

उदाहरण के लिए, PowerTCPTelnet स्थापित करने के लिए, कमांड है:

Install-Package PowerTCPTelnet -Version 4.4.9

उसी की स्थापना रद्द करने के लिए, कमांड है:

Uninstall-Package PowerTCPTelnet -Version 4.4.9


1

VS2019> उपकरण> विकल्प> नुगेट पैकेज मैनेजर> जनरल> "सभी Nuger कैश साफ़ करें" पर क्लिक करें


-2

अन्य तरीके से, और मेरे लिए बहुत ही सरल है:

  1. अपने Soution पर जाएं और फिर इस पर राइट क्लिक करें।

  2. "समाधान के लिए प्रबंधित NUgets पैकेज" विकल्प चुनें। यह एक पॉपअप विंडो खोलता है, जिसमें "सेटिंग" बटन पर क्लिक करें। यह अन्य पॉपअप विंडो खोलेगा और फिर खोज करेगा: "पैकेज मैनेजर"।

  3. विकल्प "पैकेज मैनेजर" के अंदर आपके पास दो और विकल्प हैं (I General II। संकुल सूत्र) प्रत्येक विकल्प में सभी चेकबॉक्स अनचेक करें।

यह चरण आपके प्रोजेक्ट से NuGet को निष्क्रिय कर देता है।

मुझे आशा है कि आपकी मदद करने में आसानी होगी।


-2

यदि आप Visual Studio विकल्प का उपयोग करना चाहते हैं, तो कृपया नीचे लिंक देखें

http://spvenky.wordpress.com/2014/08/10/how-to-remove-nuget-packages-from-existing-visual-studio-solution/

चरण 1: विज़ुअल स्टूडियो में, टूल / NuGet पैकेज मैनेजर पर जाएं / समाधान के लिए NuGet पैकेज प्रबंधित करें…

चरण 2: वर्तमान समाधान से अपनी परियोजना को अनचेक करें

चरण 3: परियोजना को रद्द करें और ओके दबाएं


2
केवल एक लिंक पोस्ट करने के बजाय StackOverflow में उत्तर लिखना बेहतर होता है क्योंकि लिंक भविष्य में समाप्त हो सकते हैं।
अमाडेस सान्चेज़
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.