आप एक समाधान में अप्रयुक्त NuGet पैकेज कैसे पा सकते हैं?


148

आप एक समाधान में अप्रयुक्त NuGet पैकेज कैसे पा सकते हैं?

मुझे कई समाधान मिले हैं जहां स्थापित पैकेजों पर बहुत कुछ है, और बड़ी संख्या में अपडेट होने के रूप में चिह्नित किए गए हैं।

हालाँकि मैं चिंतित हूँ कि इसमें परिवर्तन हो सकते हैं, इसलिए मैं सबसे पहले किसी भी अप्रयुक्त पैकेज को हटाकर सफाई करना चाहता हूँ।


2
आपको एहसास होता है कि आपके द्वारा उपयोग किए जा रहे पैकेजों में होने वाले परिवर्तन आपको किसी भी तरह से प्रभावित नहीं करेंगे ... सवाल के अनुसार, मैं अभी सभी NuGet पैकेजों को हटाता हूं और संकलक जो मुझे बताता है उसे फिर से जोड़ते हैं।
ओहद श्नाइडर

5
@OhadSchneider नहीं ... लेकिन मुझ में OCD अप्रयुक्त पैकेज के सभी cruft नहीं चाहता है, जैसे तैनाती में
स्टीव जूल

जवाबों:


57

ReSharper 2016.1 में अप्रयुक्त NuGet को हटाने की सुविधा है।

यह एक समाधान पर और प्रत्येक परियोजना में एक समाधान पर चलाया जा सकता है और यह निम्नलिखित चीजें करता है:

  1. अपने कोड का विश्लेषण करें और विधानसभाओं के संदर्भ एकत्र करें।
  2. असेंबली के usages के आधार पर NuGet उपयोग ग्राफ बनाएँ।
  3. सामग्री फ़ाइलों के बिना, अप्रयुक्त और बिना इस्तेमाल की निर्भरता वाले पैकेजों को अप्रयुक्त मान लिया जाता है और हटाने का सुझाव दिया जाता है।

दुर्भाग्य से, यह project.jsonपरियोजनाओं ( RSRP-454515 ) और ASP.NET मुख्य परियोजनाओं ( RSRP-459076 ) के लिए काम नहीं करता है


2
मेरे पास 2016.1 है और R # अप्रयुक्त नुगेट संदर्भों को नहीं हटा रहा है .. मैं प्रोजेक्ट का उपयोग कर रहा हूँ। nuget3 के साथ json - यह एक ज्ञात मुद्दा है?
पीटर मैकएवॉय

2
@PeterMcEvoy हाँ, यह ज्ञात समस्या है। इशारा करने के लिए धन्यवाद। मैंने स्पष्ट करने के लिए उत्तर अपडेट कर दिया है।
ulex

4
मुझे अंधा होना चाहिए, लेकिन मैं वास्तव में इस उपकरण को चलाने का कोई तरीका नहीं देख रहा हूं
क्लुडेकेनिलोल

14
@claudekennilol ने इसे ठीक किया। राइट प्रोजेक्ट पर क्लिक करें और "ऑप्टिमाइज़ रेफरेंस ..." के लिए एक विकल्प है
मैट सैंडर्स

1
@ फ्रैक्टल करेक्ट। यह निजी उपयोगकर्ताओं के लिए बहुत (बहुत) महंगा है, लेकिन यदि आप किसी भी प्रकार के कार्यस्थल पर हैं, तो डिफ़ॉल्ट वीएस की तुलना में, रिसर्पर आपके लिए बहुत अधिक तेज़ और क्लीनर वर्कफ़्लो के लायक है।
19

21

आप Visual Studio एक्सटेंशन ResolveUR - अप्रयुक्त संदर्भों का उपयोग कर सकते हैं

समाधान और प्रोजेक्ट नोड्स समाधान एक्सप्लोरर उपकरण विंडो में मेनू आइटम के माध्यम से विजुअल स्टूडियो 2012/2013 परियोजनाओं में नगेट संदर्भ सहित अप्रयुक्त संदर्भों को हल करें।

यह एक आसान काम नहीं है तो मैं एक बैकअप बनाने और / या कुछ गलत हो गया है, तो रोलबैक करने के लिए बस से पहले प्रतिबद्ध करने का सुझाव देता हूं।


यह कार्यक्रम बहुत उत्सुक है जब यह पुस्तकालयों को हटाने की बात आती है ... सावधान रहें, एक वेबसाइट का उपयोग करते समय, आप देखेंगे कि बहुत सारे डीएलएल आवश्यक हैं लेकिन चले गए हैं। यदि एक NuGet पैकेज को किसी अन्य की आवश्यकता होती है, तो आपको उस पर एक डिलीट नहीं करना चाहिए, भले ही आपके पास उस पर एक कठिन निर्भरता न हो।
jsgoupil

मैंने बुरे परिणामों के साथ इस उपकरण का उपयोग किया है। यह वास्तव में उपयोग में आने वाली बहुत सी चीजों को हटा दिया गया है (या कम से कम हटाने का सुझाव दिया गया है)। कुछ बार ऐसा हुआ है कि मैंने सुझावों पर भरोसा किया है और इसे हटाने के लिए कीमती समय बिताने की कोशिश की है।
रयान वंडेनह्यूवेल

2
[नोट] विवरण में स्पष्ट रूप से कहा गया है:The tool is not tested to work with DotNet Web projects(Asp.Net, MVC), Windows CE, Silverlight project types. Use it at your own risk.
कोरेम

यह उपकरण वास्तव में अच्छा है! यह काफी स्मार्ट है कि आप NUnit.ConsoleRunner आदि को न हटाएं, भले ही आपके पास इसका सीधा संदर्भ आपके कोड में नहीं है
ओलेग्वी

यह उपकरण धीमा है। मेरे पास 250 से अधिक परियोजनाओं के साथ समाधान है .. मैंने इंतजार किया .. और इंतजार किया
पिओटर कुला

11

आप इसे Resharper 2019.1.1 का उपयोग करके पूरा कर सकते हैं।

प्रोजेक्ट पर राइट क्लिक करें> रिफलेक्टर> अप्रयुक्त संदर्भ निकालें।

अगर आपका प्रोजेक्ट छोटा है तो आप प्रोजेक्ट> ऑप्टिमाइज़ यूज्ड रिफरेंस भी कर सकते हैं। । ।

एक विंडो पॉप अप होगी। सभी संदर्भों का चयन करें और उन सभी को हटा दें। फिर वापस जाएं और उन लोगों को फिर से जोड़ें जो आपको संकलक त्रुटि देते हैं।


3
Res.per के साथ VS.Net 2019 में, मुझे यह विकल्प मिला: समाधान एक्सप्लोरर> संदर्भ > संदर्भों का अनुकूलन ...
आर। Schreurs

"ऑप्टिमाइज़ संदर्भ उपकरण विंडो असेंबली संदर्भों को प्रदर्शित करती है जो अप्रयुक्त और वर्तमान परियोजना में उपयोग किए जाते हैं, और दिखाते हैं कि वास्तव में संदर्भ कैसे उपयोग किए जाते हैं।" blog.jetbrains.com/dotnet/2012/01/03/…
निक

1

यह मैनुअल श्रम है, लेकिन यह काम करता है।

  1. अपनी परियोजनाओं में किसी भी अप्रयुक्त संदर्भ की पहचान करने और संबंधित परियोजनाओं में नगेट की स्थापना रद्द करने के लिए ReSharper या समान कोड विश्लेषण टूल का उपयोग करें।

  2. कभी-कभी अनइंस्टॉल किए गए नगेट्स अभी भी इंस्टॉल किए गए पैकेजों में अपडेट होते हैं और NuGet संकुल संवाद प्रबंधित करें में अपडेट सूची। Visual Studio को बंद करें फिर packagesफ़ोल्डर को हटाएं , फिर समाधान को फिर से खोलें और अपने नगेट्स को पुनर्स्थापित करें।


0

मुझे नहीं लगता कि इसका पता लगाने का कोई डिफ़ॉल्ट तरीका है। इन पैकेजों की विविधता का मुख्य कारण यह है कि असेंबली को संदर्भित करने से लेकर आपकी परियोजना के स्रोत कोड को इंजेक्ट करने तक। आप Nuget.Extensions की जाँच करना चाहते हैं । कोडप्लेक्स पर निम्नलिखित धागा नगेट पैकेजों की एक ऑडिट रिपोर्ट के बारे में बात करता है।

http://nuget.codeplex.com/discussions/429694

(NuGet Codeplex से GitHub। ऊपर के लिंक का संग्रह :) ले जाया गया है https://web.archive.org/web/20171212202557/http://nuget.codeplex.com:80/discussions/429694

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.