2012-08-31 13 views
6

मुझे पता है कि मुझे अधिक से अधिक उपयोग करना चाहिए, लेकिन इस बिंदु पर मैं पूरी तरह से बारीकियों को समझ नहीं पा रहा हूं, इसलिए मुझे अभी भी स्रोत मिलना है और प्रोजेक्ट बनाना है, फिर प्रोजेक्ट का संदर्भ लें, या मैं अपना खुद का "डीएलएस" फ़ोल्डर बनाउंगा और हाथ डीएल की प्रतिलिपि बनाएँ।निकालने के लिए Nuget और स्रोत नियंत्रण फ़ाइलें?

मेरी सीखने की प्रक्रिया के हिस्से के रूप में, मैं समझने की कोशिश कर रहा हूं कि क्या महत्वपूर्ण है और नूजेट का उपयोग करते समय क्या नहीं है। उदाहरण के लिए, मैंने इंस्टॉल-पैकेज restsharp किया है और अब जब मैं स्रोत नियंत्रण में जांच करता हूं, तो मुझे "पैकेज/RestSharp.103.4/lib/net4/RestSharp.xml" जैसी फ़ाइलें मिलती हैं। मुझे लगता है कि न्यूजेट मुझे अपग्रेड करने में मदद करेगा और इस तरह और इसमें कुछ मेटा डेटा प्रकार की फाइलें होंगी।

मेरा प्रश्न है: क्या मुझे "पैकेज" निर्देशिका में किसी भी या सभी फ़ाइलों को अनदेखा करना चाहिए? यदि हां, तो क्यों और क्यों।

धन्यवाद

उत्तर

6

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

नया वर्कफ़्लो, NuGet 1.6 के बाद उपलब्ध है, समाधान के लिए NuGet की पैकेज पुनर्स्थापना सुविधा को सक्षम करना है। इस परियोजना के निर्माण के दौरान किसी भी गायब पैकेज फ़ाइलों को स्वचालित रूप से डाउनलोड करने का कारण बन जाएगा, लेकिन अब आपको अपने संस्करण नियंत्रण में बड़ी बाइनरी फाइलें नहीं करनी होंगी। NuGet 2.0 के रूप में, यह अब required है ताकि आपकी टीम के प्रत्येक डेवलपर को विजुअल स्टूडियो विकल्पों के अंदर NuGet की पैकेज पुनर्स्थापना अनुमति मिल सके।

+0

प्रत्येक डेवलपर को पैकेज पुनर्स्थापित करने की आवश्यकता नहीं है। '.ngetget फ़ोल्डर को किया जाना चाहिए। इसके अलावा, समाधान में सभी परियोजनाओं को 'NuGet.targets' फ़ाइल शामिल करने के लिए संशोधित किया गया है। प्रत्येक बिल्ड के दौरान, अनुपलब्ध संकुल का पता लगाया जाता है और जो भी NuGet repo कॉन्फ़िगर किया गया है से डाउनलोड किया जाता है। – Sumo

+0

क्या इसका मतलब यह है कि यदि मेरे पास .nuget फ़ोल्डर सक्षम है तो मैं संकुल फ़ोल्डर को सुरक्षित रूप से अनदेखा कर सकता हूं? –

+0

@ पीटरकेल्लर हां। लेकिन आपको संकुल.कॉन्फिग फ़ाइल के साथ-साथ सुनो का उल्लेख करने वाले .nuget फ़ोल्डर को करने की आवश्यकता है। –

2

दृश्य स्टूडियो में, परियोजना के तहत, वहाँ एक मेनू आइटम Enable NuGet Package Restore कहा जाता है। यह तब उपलब्ध होता है जब आपके पास कोई प्रोजेक्ट खुलता है और आप वेब एप्लिकेशन प्रोजेक्ट्स (पुनर्स्थापित वेब साइट प्रोजेक्ट्स के साथ काम नहीं करते हैं) का उपयोग कर रहे हैं। इसे चुनें और पैकेज पुनर्स्थापित करें सक्षम करें। फिर, आपको कहीं भी स्रोत नियंत्रण में पैकेज निर्देशिका को प्रतिबद्ध करने की आवश्यकता नहीं है।

NuGet के दस्तावेज़ में package restore पर अधिक जानकारी है।

आप संभवतः नकल पैकेज मैन्युअल पुनर्स्थापित करना चाहते हैं, तो आप कुछ है कि packages.config फ़ाइल को पार्स करता है और उसके बाद NuGet Commandline Bootstrapper (nuget.exe) उन पैकेज स्थापित करने के लिए कार्यान्वित की आवश्यकता होगी। सौभाग्य से बूटस्ट्रैपर एक पैरामीटर के रूप में एक packages.config लेता है। निम्नलिखित चरणों का उपयोग करके अपने पैकेज को पुनर्स्थापित करना चाहिए:

  1. समाधान के packages फ़ोल्डर को बंद करें जहां समाधान है।

    [पथ packages.config करने के लिए] स्थापित nuget.exe

यह सब एक बैच फ़ाइल में या तथापि से किया जा सकता है:

  • संकुल निर्देशिका से कमांड लाइन से निम्नलिखित चलाने आप इसे स्वचालित करना चाहते हैं।

  • +0

    मैंने कोशिश की और यह मुझे वेब साइटों (बस वेब अनुप्रयोगों) के साथ काम नहीं करने के बारे में चेतावनी दी। जिस विशेष परियोजना पर मैं काम कर रहा हूं वह बहुत बड़ा है और इसे वेब ऐप में बदलने का विचार मुझे लगभग बीमार बनाता है (हालांकि मैं चाहता हूं कि किसी ने मुझे पहली बार वेब साइट प्रोजेक्ट नहीं दिखाया हो)। तो, इसके लिए क्या प्रभाव हैं? कोई विचार? –

    +0

    उस मामले में (शायद मूल प्रश्न के हिस्से के रूप में उल्लेख किया जाना चाहिए था), आप केवल पैकेज विकल्प फ़ोल्डर और packages.config प्रतिबद्ध करने का विकल्प हैं।NuGet स्पष्ट रूप से वेब साइट परियोजनाओं का समर्थन नहीं करता है [इस समय] (http://nuget.codeplex.com/workitem/1663)। – Sumo

    +0

    @ पीटर केलनर, मैंने आपको वेब साइट प्रोजेक्ट्स के साथ एक विकल्प देने के लिए अपना उत्तर अपडेट किया है जो कम से कम तब तक काम कर सकता है जब तक आप [वेब एप्लिकेशन प्रोजेक्ट में कनवर्ट नहीं कर सकते] (http://msdn.microsoft.com/en-us/library /aa983476%28v=vs.100%29.aspx) (जैसा कि आप सोच सकते हैं दर्दनाक नहीं)। – Sumo