2013-01-25 26 views
5

हम आंतरिक रूप से निर्मित और तृतीय पक्ष पैकेज दोनों के लिए NuGet के उत्साही उपयोगकर्ता हैं।गुम पैकेज में NuGet पैकेज को विफल करने का कारण बनता है

हमने हाल ही में हमारे कुछ निर्माण परियोजनाओं में NuGet पैकेज पुनर्स्थापना विकल्प को सक्षम करना शुरू कर दिया है ताकि हम स्रोत नियंत्रण में बाइनरी फ़ाइलों की मात्रा को कम कर सकें, लेकिन हम किसी समस्या के खिलाफ आ रहे हैं।

हम विजुअल स्टूडियो को शुरू करने के लिए वास्तव में लंबा समय ले रहे हैं और, एक बार यह शुरू हो जाने के बाद (जो आधा घंटे लग सकता है), बाद में निर्माण समान समय लेने वाला होता है। हालांकि यह हो रहा है, आप प्रक्रिया एक्सप्लोरर में दिखाई देने और मरने वाले कई बच्चे NuGet प्रक्रियाओं को देख सकते हैं।

हमने पाया है कि यदि संकुल.config फ़ाइल में संदर्भित पैकेज का संस्करण किसी भी कॉन्फ़िगर किए गए पैकेज स्रोतों से उपलब्ध नहीं है (शायद यह एक आंतरिक पैकेज का पुराना संस्करण है और कोई सहायक सफाई कर रहा है हमारे स्थानीय रेपो), ऐसा लगता है कि NuGet और विजुअल स्टूडियो कुछ प्रकार के अनंत (या कम से कम लंबे समय तक चलने वाले) रेट्री लूप में आते हैं।

हम NuGet कमांड लाइन से कमांड स्थापित चलाते हैं हम

>.nuget\NuGet.exe install project\packages.config -o packages 
Unable to find version '1.0.0.1' of package 'my.internal.package'. 

त्रुटि वापस मिल लेकिन जैसे कि यह दृश्य स्टूडियो/NuGet द्वारा सही ढंग से उपयोग नहीं किया जा रहा है यह लग रहा है।

  • क्या NuGet कहीं भी अपने कार्यों को लॉग करता है?
  • हम NuGet पुनर्प्रयास या समय बहिष्कार बहाल सीमित कर सकते हैं (शायद nuget.targets फ़ाइल में?)
  • यह इसलिए है क्योंकि हमारे उपरोक्त परिदृश्य में लगता है जैसे कि NuGet के अर्थ संस्करण का उपयोग नहीं किया जा रहा है, 1.0.0.2 रेपो से उपलब्ध है , क्या यह सक्षम किया जा सकता है?
+0

पर सीमित कर रहे हैं, क्या आप nuget प्रक्रियाओं के निर्माण के लिए कमांडलाइन साझा कर सकते हैं। आप इसे प्रक्रिया एक्सप्लोरर या टास्क मैनेजर से ला सकते हैं। इन प्रक्रियाओं को बढ़ाने के बारे में एक बेहतर विचार देगा। – allen

उत्तर

2

यह इस मुद्दे http://nuget.codeplex.com/workitem/2970 अस्थायी समाधान मेरे लिए काम किया के समान लगता है nuget.targets खोलने के लिए और
< को बदलने के लिए है - हम संकुल सुनिश्चित करने की आवश्यकता विधानसभा संकल्प करने से पहले बहाल कर रहे हैं ->
< ResolveReferencesDependsOn Condition = "$ (RestorePackages) == 'true'">
पुनर्स्थापना पैकेज;
$ (ResolveReferencesDependsOn);
</ResolveReferencesDependsOn>

< BuildDependsOn स्थिति = के साथ "$ (RestorePackages) == 'सही'">
RestorePackages;
$ (BuildDependsOn);
</BuildDependsOn>

वीएस में समाधान बंद करें और पुनः लोड करें। इससे निर्माण असेंबली संकल्प के बजाय संकुल को पुनर्स्थापित करने पर निर्भर करेगा जो इस मुद्दे को हल करने लगता है।

उम्मीद है कि इससे मदद मिलती है।

0

सबसे पहले आपका संस्करण यह बताता है कि क्या nuget अनुशंसा करता है यानी 1.2.3। तो आपको यह देखने के लिए 1.0.1 के रूप में अपना संस्करण बंप करने का प्रयास करना चाहिए कि क्या यह समस्या हल करता है या नहीं।

  • क्या NuGet कहीं भी अपने कार्यों को लॉग करता है?

अतिरिक्त जानकारी प्राप्त करने के लिए आप अपनी कमांड लाइन "nuget इंस्टॉल" के साथ -verbosity ध्वज का उपयोग कर सकते हैं। विवरण आउटपुट विंडो में भी उपलब्ध हैं। ड्रॉपडाउन से "पैकेज प्रबंधक" का चयन करें। अधिक उपयोग devenv के लिए/log

  • हम NuGet पुनर्प्रयास या समय बहिष्कार (शायद nuget.targets में फ़ाइल?)

न यहाँ किसी भी तरह की जानकारी को बहाल सीमित कर सकते हैं।

  • ऐसा लगता है जैसे कि NuGet के अर्थ संस्करण का उपयोग नहीं किया जा रहा है, क्योंकि हमारी उपरोक्त परिदृश्य 1.0.0.2 रेपो से उपलब्ध है, यह सक्षम हो सकता है?

यह टूल-> विकल्प-> पैकेज प्रबंधक में "स्वचालित रूप से अपग्रेड की जांच" की जांच करके प्राप्त किया जा सकता है? देखें कि क्या आपके packages.config संस्करण को 1.0.0.1