क्या पैकेज रिस्टोर का उपयोग करते समय .nuget फ़ोल्डर में स्वतः nuget.exe अपडेट करने का कोई तरीका है?


92

मेरी टीम पैकेज को हमारे स्रोत नियंत्रण से बाहर रखने के लिए Nuget 1.5 के बाद से पैकेज पुनर्स्थापना विकल्प का उपयोग कर रही है। जब Nuget 1.6 जारी किया गया था, तो हमने एक ऐसा मुद्दा देखा, जहां यह पैकेजों को नीचे नहीं खींच रहा था, और पैकेज मैनेजर से मिलान करने के लिए इसे .nuget फ़ोल्डर में Nuget.exe पर ट्रैक करके 1.6 पर अपडेट करने की आवश्यकता थी।

Nuget udpated हो जाने के बाद समाधान को अपडेट करने का सबसे अच्छा तरीका क्या है? मुझे समाधान फ़ोल्डर में नगेट का कौन सा संस्करण है, यह बताने के लिए स्टूडियो से एक आसान रास्ता नहीं दिखता है। अब तक हम .nuget फ़ोल्डर को उड़ा देते हैं और सक्षम पैकेज रिस्टोर कमांड को फिर से चलाते हैं।

जवाबों:


148

मैं कमांड लाइन से इस कमांड के साथ .nuget \ nuget.exe अपडेट करने का सुझाव दूंगा:

nuget.exe update -self

[संपादित करें]: पहले वीएस समाधान बंद करें। यदि कोई अद्यतन है और समाधान खोला गया है, तो nuget.exe समाधान से निकाल दिया जाएगा।

उपरोक्त आदेश जोड़ने के लिए .nuget \ nuget.targets को संशोधित करके आप स्वतः ही nuget.exe को अपडेट कर सकते हैं । मैं वहाँ एक उदाहरण के रूप में पुनर्स्थापना आदेश को देखूंगा। लेकिन मुझे यकीन नहीं है कि अगर यह इसके लायक है, तो nuget.exe अपडेट आम नहीं हैं, और पिछड़े संगतता को शायद ही कभी तोड़ना चाहिए।


मैंने अपने एक प्रोजेक्ट पर यह कोशिश की। यह NuGet.exe को अद्यतन करता है लेकिन ऐसा लगता है कि इसे मेरे समाधान से हटा दिया गया है। मुझे पता है कि मैं इसे वापस जोड़ सकता हूं, लेकिन यह अजीब लग रहा था।
रिक

आह ठीक है, मैंने इस बार एक वास्तविक अपडेट की कोशिश की और nuget.exe मेरे लिए वीएस समाधान से भी हटा दिया गया। (मुझे ऐसा पहले नहीं मिला क्योंकि nuget.exe अप ​​टू डेट था)। ऐसा इसलिए होता है क्योंकि अपडेट के दौरान वर्तमान nuget.exe को nuget.exe.old पर ले जाया जाता है ताकि फ़ाइल संदर्भ टूट जाए। मुझे शक है कि यह ठीक हो जाएगा, मैं बंद समाधान के साथ कमांड चलाऊंगा।
अलेक्जेंड्रे डायोन

ऐसा लगता है कि सेल्फ अपडेट करने से आपको एक नई NuGet.targets फाइल नहीं मिलेगी, जो एक समस्या हो सकती है। मुझे लगता है कि NuGet टीम ने संस्करण 1.6 और 1.7 के बीच लक्ष्य फ़ाइल में कुछ बदलाव किए हैं।
विलियम ग्रॉस

अगर आप nuget.org/packages/NuGet.Build (वह पैकेज जिसमें nuget.targets सम्‍मिलित है)
Alexandre Dion

मेरे लिए काम किया, बस व्यवस्थापक के रूप में cmd ​​चलाने के लिए याद रखें
मोहम्मद

31

मैंने इसे संभालने का सबसे अच्छा तरीका पाया है कि केवल .nuget फ़ोल्डर को डिलीट करके और सॉल्यूशन वाइड पैकेज रिस्टोर को फिर से इनेबल कर रहा है। जैसा कि ऊपर कहा गया है, आप अपने निर्माण में एक स्व-अद्यतन कमांड जोड़ सकते हैं, लेकिन यह लक्ष्य या अद्यतन फ़ाइलों को अद्यतन नहीं करेगा यदि संस्करण के बीच परिवर्तन हो (या आपके समाधान से संदर्भ हटा दें)। शायद यह एक सौदा का इतना बड़ा नहीं है, लेकिन यह सुनिश्चित करने के लिए सुनिश्चित करें कि आपके पास नवीनतम exe और कॉन्फ़िगरेशन फ़ाइलें हैं। और दिन के अंत में, अद्यतन करना केवल एक मुद्दा है यदि आपको किसी नए कमांड तक पहुंच की आवश्यकता है या अंततः एक नए रिलीज में एक ब्रेकिंग परिवर्तन है।


3
+1 - मैं ने पाया है कि यह सबसे अच्छा तरीका है करने के लिए नई जानकारी प्राप्त होती है NuGet.exe और साथ हीNuGet.targets फ़ाइल (जो भी महत्वपूर्ण है)। बस सुनिश्चित करें कि आपने NuGet.targetsफ़ाइल में किए गए किसी भी अनुकूलन को बचाया है (उदाहरण के लिए कस्टम पैकेजसर्ज़) ताकि आप उन्हें नई फ़ाइल में फिर से लागू कर सकें।
जेसी वेब वेब

महान जो मेरे लिए आकर्षण की तरह काम किया !! जानकारी के लिए धन्यवाद
गायन

-3

अपने ब्लॉग पर डेविड एबो की पोस्ट देखें

मूल रूप से, आपको बस अपनी .sln फ़ाइल के बगल में एक NuGet.Config फ़ाइल बनानी होगी, जिसमें:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <clear/>
    <add key="nuget.org" value="https://www.nuget.org/api/v2/" />
    <add key="aspnetwebstacknightlyrelease" value="https://www.myget.org/f/aspnetwebstacknightlyrelease/" />
  </packageSources>
</configuration>

1
प्रश्न पूछता है कि पैकेज रीस्टोर का उपयोग करते समय nuget.exe को स्वचालित रूप से नवीनतम संस्करण में कैसे अपडेट किया जाए। डेविड Ebbo के थप्पड़ पोस्ट केवल बताता है कि कैसे nuget.exe का उपयोग करके संकुल को पुनर्स्थापित किया जाए।
फ्रिथ

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