2011-06-21 22 views
14

मैं एक संपूर्ण nuget पैकेज को हटाना चाहता हूं, और इसे अपने प्रोजेक्ट में फिर से इंस्टॉल करना चाहता हूं।Nuget स्वच्छ पैकेज हटाएं/स्थापित करें

अफसोस की बात है कि, किसी कारण से यह "संशोधित" फ़ाइलों को हटा देता है, और फिर उन्हें पुन: स्थापित करने पर प्रोजेक्ट में डाल देता है, क्योंकि वे पहले से मौजूद हैं।

क्या कोई ध्वज है जिसे मैं बिना किसी पैकेज के प्रत्येक ट्रेस को बिना शर्त रूप से हटा सकता हूं, वैकल्पिक रूप से सभी मौजूदा फाइलों को ओवरराइट कर सकता हूं?

धन्यवाद।

उत्तर

11

दुर्भाग्य से इस समय, NuGet जो भी आप चाहते हैं वह नहीं करता है। अनइंस्टॉल प्रक्रिया के दौरान, NuGet केवल सामग्री फ़ाइलों को हटा देगा यदि उन्हें संशोधित नहीं किया गया है। और जैसा कि आपने देखा है, अद्यतन प्रक्रिया उन फ़ाइलों को अपडेट नहीं करेगी जिन्हें संशोधित किया गया था।

अनइंस्टॉल-पैकेज कमांड में एक-फोर्स विकल्प होता है, लेकिन अगर इस पर निर्भर अन्य पैकेज हैं तो भी अनइंस्टॉल करना "बल" करना है।

हम निश्चित रूप से इसे एक समस्या के रूप में दर्ज कर सकते हैं और शायद इसे भविष्य के संस्करण में शामिल कर सकते हैं।

एक और विकल्प एक PowerShell स्क्रिप्ट बनाना होगा जो पैकेज की सामग्री को गिनती करेगा, फिर आपको सभी सामग्री फ़ाइलों को हटाने की अनुमति देगा। मैं देखूंगा कि ऐसा करने का एक आसान तरीका है या नहीं।

बीटीडब्ल्यू: शायद आप इसे सीधे संशोधित करने के अलावा मौजूदा सामग्री फ़ाइल को विस्तारित करने का एक बेहतर तरीका समझ सकते हैं। खासकर जब पैकेज अपडेट होने पर आप अपने परिवर्तन खो रहे हैं।

+0

मुझे यह समस्या भी है। बात यह है कि, मैंने वास्तव में किसी भी फ़ाइल सामग्री को संशोधित नहीं किया है। मैंने जो कुछ किया है वह एक एसवीएन भंडार में फाइलें जोड़ रहा है। मुझे लगता है कि फ़ाइल में जो भी विशेषताएं एसवीएन जोड़ती हैं उन्हें संशोधनों के रूप में भी व्याख्या किया जा रहा है। यह स्रोत नियंत्रण प्रणाली का उपयोग कर किसी के लिए वास्तव में असुविधाजनक उपयोग कर रहा है। – Sean

+2

क्या यह उत्तर पिछले 15 महीनों में बदल गया है? –

+0

@PatrickSzalapski हाँ - मेरा उत्तर –

3

NuGet संस्करण 1.6 एक निकालें पैकेज फ़ंक्शन है! http://docs.nuget.org/docs/release-notes/nuget-1.6

यदि एक्सटेंशन का अद्यतन विफल रहता है (सिग्नेचर मिसमैच), बस अनइंस्टॉल करें और पुनर्स्थापित करें। यह एक ज्ञात समस्या है।

+4

आपका उद्धृत पृष्ठ 'निकालने के लिए प्रतीत नहीं होता है पैकेज फ़ंक्शन '। क्या आप कृपया बता सकते हैं कि आप किस ज्ञात समस्या के बारे में बात कर रहे हैं और v1.6 और बाद के पते का क्या पहलू है - अभी आपका जवाब, जबकि अच्छी तरह से इरादा से दैवीय उपयोगी जानकारी के लिए बहुत कठिन है –

6

अब आप जो चाहते हैं वह कर सकते हैं! (अंत में)

आपको सबसे पहले नवीनतम NuGet में अपडेट करने की आवश्यकता है (मुझे लगता है कि यह सुविधा अप्रैल 2013 के आसपास जोड़ा गया था)। इसे Tools > Extensions and Updates पर जाकर और nuget को अपडेट करने के लिए Updates पर क्लिक करें।

फिर -FileConflictAction पैरामीटर आपको फ़ाइलों को ओवरराइट करने की अनुमति देगा।

Install-Package Microsoft.jQuery.Unobtrusive.Validation -Version 2.0.30506.0 -FileConflictAction Overwrite 

(PowerShell Command Reference for Install-Package)

0

मैं यह मेरे लिए कई बार हुआ लगता है। Packages.config फ़ाइल पर जाएं जो आपकी प्रोजेक्ट की मूल निर्देशिका होनी चाहिए और विद्रोही को हटा दें (आपके मामले में पैकेज के साथ लाइन: सिग्नलआर)। यह NuGet को बताएगा कि पैकेज कभी स्थापित नहीं किया गया था।

अब आप इसे भंडार के माध्यम से पुनर्स्थापित करने में सक्षम होंगे, फिर इसे अनइंस्टॉल करें ताकि सब कुछ इस गड़बड़ में आने से पहले वापस आ गया हो। मुझे यकीन नहीं है कि यह कैसा चल रहा है।

संबंधित मुद्दे