NuGet के माध्यम से पैकेज का एक पुराना संस्करण कैसे स्थापित करें?


384

मैं पैकेज के पुराने संस्करण को स्थापित करना चाहता हूं ( Newtonsoft.Json)। लेकिन नुगेट पीछे हट जाता है।

PM> Install-Package Newtonsoft.Json -Version 4.0.5
Successfully installed 'Newtonsoft.Json 4.0.5'.
Install failed. Rolling back...
Install-Package : Already referencing a newer version of 'Newtonsoft.Json'.

किसी भी प्रकार की सहायता सराहनीय होगी।


जवाबों:


579

निम्नलिखित प्रयास करें:

Uninstall-Package Newtonsoft.Json -Force

के बाद:

Install-Package Newtonsoft.Json -Version <press tab key for autocomplete>

Twitterizer Newtonsoft.Json का उपयोग करता है, मुझे नए की स्थापना रद्द किए बिना पुराने को इंस्टॉल करना है। PM> अनइंस्टॉल-पैकेज Newtonsoft.Json अनइंस्टॉल-पैकेज: 'Newtonsoft.Json 4.0.8' की स्थापना रद्द करने में असमर्थ क्योंकि 'twitterizer 2.4.0.26532' इस पर निर्भर करता है।
नेबाइड यिल्डिज़

9
आपने पैकेज पर मौजूदा निर्भरता का उल्लेख नहीं किया था इसलिए मैं इससे अनजान था: स्थापना-पैकेज कमांड में -Force स्विच को जोड़ने का प्रयास करें (जैसा कि ऊपर संपादित किया गया है)
जेवियर डिकॉस्टर

मेरे लापता होने के लिए क्षमा करें। -फर्स ने काम किया और मैंने पुराने को स्थापित किया। बहुत बहुत धन्यवाद।
नेबाइड यिल्डिज़

जब EntityFramework 6 बीटा को संस्करण 5 में डाउनग्रेड करने के लिए अनइंस्टॉल किया जा रहा है तो मुझे संदेश मिल रहा है कि मुझे पुनरारंभ करने के लिए VS को अनइंस्टॉल करने के लिए पूरा करना है लेकिन ऐसा करने से संदेश हटा नहीं है। मैं अभी पैकेज फ़ोल्डर में गया और वहां से शेष खाली पेड़ की संरचना को हटा दिया और फिर यह सफल रहा
सिमोन_विवर

@Simon_Weaver मुझे संदेह है कि EF 6 pkg कुछ ऐसा कर रहा है जो इसका कारण बनता है (PowerShell स्क्रिप्ट में उदाहरण के लिए कुछ AppDomain कोड पर ध्यान दिया गया है, इसलिए संभवतः VS dll के कुछ पर पकड़ बना रहा है)
Xavier Toster

266

Nuget 2.8 के रूप में पैकेज को डाउनग्रेड करने की सुविधा है ।

नगेट 2.8 रिलीज नोट्स

उदाहरण:

पैकेज मैनेजर कंसोल में दर्ज निम्न कमांड काउचबेस क्लाइंट को 1.3.1.0 संस्करण में डाउनग्रेड करेगा

Update-Package CouchbaseNetClient -Version 1.3.1.0

परिणाम:

Updating 'CouchbaseNetClient' from version '1.3.3' to '1.3.1.0' in project [project name].
Removing 'CouchbaseNetClient 1.3.3' from [project name].
Successfully removed 'CouchbaseNetClient 1.3.3' from [project name].

नीचे क्रिमबो के अनुसार कुछ ध्यान दें:

"यह दृष्टिकोण एक प्रीलेयर संस्करण से दूसरे प्रीलेयरेज़ संस्करण में डाउनग्रेड करने के लिए काम नहीं करता है - यह केवल रिलीज़ संस्करण के डाउनग्रेडिंग के लिए काम करता है"


13
यह अब न्यूनतम प्रयास के साथ इसका सबसे अच्छा समाधान के रूप में स्वीकार किया जाना चाहिए।
पीटर

हां, एक आकर्षण की तरह काम करता है, जिसमें सभी निर्भरताओं को अपग्रेड करना शामिल है - परिपूर्ण
पीटर

7
दुर्भाग्य से यह दृष्टिकोण एक प्रीलेयर संस्करण से दूसरे प्रीलीज संस्करण में डाउनग्रेड करने के लिए काम नहीं करता है - यह केवल एक रिलीज संस्करण में डाउनग्रेड करने के लिए काम करता है।
19

@ जेम्स रोलैंड यह बहुत अच्छा होगा अगर आप उत्तर पर crimbo द्वारा पूर्व चेतावनी चेतावनी को उजागर कर सकते हैं
इगलासियस

51

मैंने ज़ेवियर के उत्तर का काफी उपयोग किया है। मैं जोड़ना चाहता हूं कि पैकेज संस्करण को एक निर्दिष्ट सीमा तक सीमित करना नूगेट के नवीनतम संस्करणों में आसान और उपयोगी है।

उदाहरण के लिए, यदि आप कभी भी अपनी परियोजना में Newtonsoft.Jsonपिछले संस्करण 3.x.xको अपडेट नहीं करना चाहते हैं, तो इस तरह दिखने के लिए packageअपनी packages.configफ़ाइल में संबंधित तत्व को बदलें :

<package id="Newtonsoft.Json" version="3.5.8" allowedVersions="[3.0, 4.0)" targetFramework="net40" />

allowedVersionsविशेषता पर ध्यान दें । यह उस पैकेज के संस्करण को 3.0( समावेशी ) और 4.0( अनन्य ) के बीच के संस्करणों तक सीमित कर देगा । फिर, जब आप Update-Packageपूरे समाधान पर करते हैं, तो आपको उस विशेष पैकेज के बारे में चिंता करने की आवश्यकता नहीं है जिसे पिछले संस्करण में अपडेट किया जा रहा है 3.x.x

इस कार्यक्षमता के लिए प्रलेखन यहाँ है


4
अपने समाधान को तोड़ने से NuGet अपडेट को रोकने के लिए बहुत उपयोगी है! (Microsoft.Net.Http v2.1.10, मैं आपको देख रहा हूं ...)
डगलस बारबिन

6
मैं JQuery 1.9 और 2.0 को देख रहा हूं।
मार्टिन ब्राउन

Microsoft.Owin मेरे लिए :-)
bikeman868

19

अब, यह विज़ुअल स्टूडियो 2015 + बाद में बहुत सरल हो गया है । आप Downgrade / Upgradeपैकेज प्रबंधक कंसोल में कमांड निष्पादित किए बिना, उपयोगकर्ता इंटरफ़ेस के भीतर ही कर सकते हैं ।

  1. Right click on your projectऔर go to Manage Nuget Packages

  2. निचे इमेज में देखें।

    • Select your Package and Choose the Version, जिसे आप इंस्टॉल करना चाहते थे।

Nuget पैकेज मैनेजर प्रोजेक्ट की विंडो

वेरी वेरी सिंपल, है ना? :) उम्मीद है की यह मदद करेगा...


1
हां! यह जाने का तरीका है :)
इम्पोस्टर सिंड्रोम

0

इसे पाने के लिए एक और अधिक मैनुअल विकल्प:

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