2012-09-17 25 views
6

के साथ प्रमाण-पत्रों के लिए संकेत देने में असमर्थ मैंने अपने समाधान में NuGet पैकेज पुनर्स्थापना सक्षम की है। मैं nuget.exe संस्करण 2.0.30828.5 का उपयोग कर रहा हूँ। सामान्य सार्वजनिक फ़ीड में मौजूद पैकेजों के लिए, NuGet Package Restore ठीक काम करता है। यही है, अगर "पैकेज" निर्देशिका में कुछ भी नहीं है और मेरे स्थानीय NuGet कैश (सी: \ उपयोगकर्ता \ {उपयोगकर्ता नाम} \ AppData \ Local \ NuGet \ Cache) स्पष्ट है, एनपीआर पूरी तरह से काम करता है।NuGet पैकेज पुनर्स्थापित कस्टम फ़ीड

हालांकि, जब हम अपने कस्टम फ़ीड में एक पैकेज के लिए एनपीआर उपयोग करने के लिए कोशिश कर रहे हैं (कस्टम फ़ीड मूल प्रमाणीकरण है) हम इस मिल:

EXEC : warning : Unable to prompt for credentials. Consult NuGet's help documentation for ways to specify credentials. 
c:\<localpath>\.nuget\nuget.targets(80,9): error : Unable to find version '2.0.1.0' of package '<packageName>'. 
c:\<localpath>\.nuget\nuget.targets(80,9): error MSB3073: The command ""c:\<localpath>\.nuget\nuget.exe" install "c:\<localpath>\packages.config" -source "" -RequireConsent -o "c:\<localpath>\packages"" exited with code 1. 

जब मैं रूप में अच्छी तरह decompiling nuget रूप NuGet कोड को देखो स्ट्रिंग को खोजने के लिए .exe "क्रेडेंशियल्स के लिए संकेत देने में असमर्थ। क्रेडेंशियल्स निर्दिष्ट करने के तरीकों के लिए NuGet की सहायता प्रलेखन से परामर्श करें" मैं इसे वहां देखता हूं, लेकिन स्पष्ट रूप से, मैं यह निर्धारित करने में असमर्थ हूं कि उस त्रुटि संदेश का उपयोग कौन कर रहा है।

जब हम पैकेज जोड़ते हैं (या तो NuGet UI या पैकेज प्रबंधक कंसोल से), यह प्रमाण-पत्रों के लिए संकेत देता है और ठीक काम करता है। पैकेज पुनर्स्थापना पर यह केवल एक समस्या है।

मैं इस आदेश को चलाने का भी प्रयास:

NuGet.exe source Update -Name {feedname} -UserName {myusername} -Password {mypassword} 

लेकिन एक ही परिणाम हो जाता है।

क्या कोई जानता है कि मैं NuGet पैकेज पुनर्स्थापना के लिए मूल ऑथ का उपयोग करके कस्टम NuGet फ़ीड में प्रमाण-पत्र कैसे निर्दिष्ट कर सकता हूं?

अद्यतन 9/18/2012

मैं इस मुद्दे पर एक अद्यतन है। मैंने देखा कि जब मैं nuget.exe स्रोत अद्यतन चला गया ... कमांड, यह अनुभाग को NuGet.config फ़ाइल में जोड़ा गया जो मेरे समाधान के लिए स्थानीय .nuget फ़ोल्डर में था। मैं फिर निर्माण चलाने के दौरान procmon.exe भाग गया एक नोट देखा कि इस फाइल को देखा नहीं जा रहा था! इसके बजाय यह "सी: \ उपयोगकर्ता {उपयोगकर्ता नाम} \ AppData \ Roaming \ NuGet" निर्देशिका में NuGet.config फ़ाइल की तलाश में था। मैं फिर स्थानीय NuGet.config फ़ाइल से \ AppData \ Roaming \ NuGet निर्देशिका में NuGet.config फ़ाइल में सेक्शन को कॉपी/पेस्ट करता हूं, और यह काम करता है!

तो ... सवाल यह है कि सही इस प्रक्रिया के लिए सबसे अच्छा अभ्यास क्या है?

उत्तर

6

अब यह काम कर रहा है। यह काम करने के लिए मैंने यह किया है। सबसे पहले, यह कमांड प्रतीत होता है:

NuGet.exe source Update -Name {feedname} -UserName {myusername} -Password {mypassword} 

इसके बारे में जाने का सही तरीका है। चेतावनी यह है कि, जब आप "nuget.exe स्रोत अद्यतन" कमांड चलाते हैं, nuget.exe उसी निर्देशिका में NuGet.config फ़ाइल की तलाश करेगा क्योंकि nuget.exe निष्पादित होने पर निष्पादित किया जा रहा है। यदि यह मौजूद है, तो यह वहां परिवर्तनों को संग्रहीत करेगा। यदि यह मौजूद नहीं है, तो यह% AppData% \ NuGet निर्देशिका में स्थित NuGet.config फ़ाइल में परिवर्तनों को संग्रहीत करेगा।

अतिरिक्त चेतावनी है कि, जब पैकेज बहाल निर्माण के हिस्से के रूप में मार डाला जाता है, यह केवल% AppData% \ NuGet निर्देशिका में NuGet.config फ़ाइल को देखता है और NuGet.config फ़ाइल में है कि ध्यान नहीं देता है nuget.exe की एक ही निर्देशिका निष्पादित की जा रही है (मुझे यकीन है कि यह एक बग या जानबूझकर है)।

तो, आपको यह आदेश एक nuget का उपयोग करके चलाया जाना चाहिए।exe कि एक निर्देशिका में है जो में एक NuGet.config फ़ाइल है, यह सुनिश्चित करने के लिए कि% AppData% \ NuGet निर्देशिका में सही NuGet.config फ़ाइल में परिवर्तनों को संग्रहीत किया जाए।

+0

मेरी समझ है कि Nuget.exe को कॉन्फ़िगरेशन फ़ाइल की आपूर्ति करने का एक विकल्प भी है, इसलिए आप इसे फ़ाइल करने का प्रयास करने और उस फ़ाइल का उपयोग करने के लिए कॉल करते समय अधिक स्पष्ट होने का प्रयास कर सकते हैं, लेकिन शायद इसे कुछ आदेशों के लिए अनदेखा कर दिया जाता है। – dragon788

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