एक छद्म के पीछे NuGet


104

मुझे पता है कि नुगेट 1.4 संस्करण के बाद से प्रॉक्सी सेटिंग्स कॉन्फ़िगरेशन की अनुमति देता है। लेकिन, मुझे कोई कमांड लाइन उदाहरण नहीं मिल रहा है।

मैं कुछ बिल्ड चलाने की कोशिश कर रहा हूं और NuGet कनेक्ट नहीं कर सकता।

मैं कमांड लाइन पर प्रॉक्सी सेटिंग्स कैसे कॉन्फ़िगर करूं?


1
प्रॉक्सी समस्याओं का सामना करने वाले अन्य उपयोगकर्ताओं के लाभ के लिए: आपको पता होगा कि यह प्रॉक्सी हो सकता है यदि NuGet संदेश प्रदर्शित करता है: "दूरस्थ नाम हल नहीं किया जा सका: 'nuget.org'"
pduncan

4
सावधान रहें जाँच करने के लिए http_proxyऔर https_proxyअच्छी तरह से अपने सिस्टम प्रॉक्सी सेटिंग के रूप में के रूप में वातावरण चर
कर्नल आतंक

इसके लिए अब github पर एक मुद्दा है: github.com/NuGet/Home/issues/458
thekip

जवाबों:


203

यहाँ मैंने अपने कॉर्पोरेट प्रॉक्सी के साथ यह काम करने के लिए क्या किया जो NTLM प्रमाणीकरण का उपयोग करता है। मैंने NuGet.exe डाउनलोड किया और फिर निम्नलिखित कमांड्स चलाए (जो मुझे कोडप्लेक्स पर इस चर्चा में टिप्पणियों में मिली ):

nuget.exe config -set http_proxy=http://my.proxy.address:port
nuget.exe config -set http_proxy.user=mydomain\myUserName
nuget.exe config -set http_proxy.password=mySuperSecretPassword

इसने मेरे पास NuGet.configस्थित %appdata%\NuGet(जो कि C: \ Users \ myUserName \ AppData \ Roaming पर मेरे विंडोज 7 मशीन पर मैप किया है ):

<configuration>
    <!-- stuff -->
    <config>
        <add key="http_proxy" value="http://my.proxy.address:port" />
        <add key="http_proxy.user" value="mydomain\myUserName" />
        <add key="http_proxy.password" value="base64encodedHopefullyEncryptedPassword" />
    </config>
    <!-- stuff -->
</configuration>

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

ध्यान दें कि इस दृष्टिकोण की कोशिश करने वाले कुछ लोगों ने टिप्पणियों के माध्यम से रिपोर्ट किया है कि वे http_proxy.passwordकमांड लाइन से कुंजी को सेट करने में सक्षम हो गए हैं , या इसे कॉन्फ़िगर फ़ाइल से तथ्य के बाद हटा दें, और अभी भी NuGet फ़ंक्शन करने में सक्षम थे प्रॉक्सी के पार।

यदि आप पाते हैं, हालांकि, आपको अपना पासवर्ड NuGet config फ़ाइल में निर्दिष्ट करना होगा, तो याद रखें कि आपको अपने नेटवर्क लॉगिन को बदलते समय कमांड लाइन से NuGet कॉन्फ़िग में संग्रहीत पासवर्ड को अपडेट करना होगा, यदि आपका प्रॉक्सी क्रेडेंशियल भी आपका नेटवर्क है। साख


NuGet कमांड-लाइन ने मेरी NuGet.config फ़ाइल में प्रविष्टियाँ नहीं जोड़ीं, लेकिन एक बार जब मैंने फ़ाइल को मैन्युअल रूप से संपादित किया, तो इसने बहुत अच्छा काम किया।
पीडीकन

19
मेरे मामले में, मैंने http_proxy.password कुंजी को पूरी तरह से छोड़ दिया और यह मेरे प्रमाणित AD क्रेडेंशियल्स के माध्यम से पारित करने के लिए खुश लग रहा था। यह बार-बार पासवर्ड बदलने की आवश्यकता को बचाता है।
सर क्रिस्पलॉट

5
चेतावनी जब आप आर्कन द्वारा सुझाए गए कॉन्फ़िगरेशन का उपयोग करते हैं तो सावधान रहें। सुनिश्चित करें कि जब आप अपना विंडोज पासवर्ड बदलते हैं, तो आप पासवर्ड को फाइल में बदल दें। कंपनी नीति के अनुसार पासवर्ड बदलने के बाद मेरे विंडोज खाते को अनियमित रूप से बंद कर दिया गया था। मुझे यह पता लगाने में कुछ घंटे लग गए कि इसकी इस विन्यास प्रविष्टि ने इस पूरी परेशानी को जन्म दिया। सबसे अच्छा विकल्प केवल http_proxy.password कुंजी को हटाना है जैसा कि @Sir Crispalot द्वारा सुझाया गया है
AJ Qarshi

3
कोशिश करें कि सर क्रिसपलॉट ने क्या उल्लेख किया है और http_proxy.password कुंजी को हटा दें। इसने कुछ लोगों के लिए काम किया है और उन्हें NuGet config फाइल में पासवर्ड बदलने से बचने की अनुमति दी है।
आर्क

4
यहां एक और जीत - इन सेटिंग्स का उपयोग करना और पासवर्ड कुंजी को छोड़ना मेरे लिए NTLM प्रमाणीकरण के साथ मेरे कॉर्पोरेट प्रॉक्सी के पीछे काम किया।
16

22

हो सकता है कि आप अपने devenv.exe.config पर यह कोशिश कर सकें

<system.net>
    <defaultProxy useDefaultCredentials="true" enabled="true">
        <proxy proxyaddress="http://proxyaddress" />
    </defaultProxy>
    <settings>
        <servicePointManager expect100Continue="false" />
        <ipv6 enabled="true"/>
    </settings>
</system.net>

मुझे यह नुगेट इश्यू ट्रैकर से मिला

NuGet + नेटवर्क मुद्दों के बारे में अन्य मूल्यवान टिप्पणियाँ भी हैं।


2
लेकिन यह मानता है devenve.exe (विजुअल स्टूडियो जो है) स्थापित है, जो एक बिल्ड सर्वर में नहीं होना चाहिए
कैट लिम Ruiz

मुझे इसे काम करने के लिए इस सेटिंग को हटाना पड़ा, ताकि यह IE की प्रॉक्सी सेटिंग्स का अनुसरण करे।
रोजी कासिम

xml <system.net> <defaultProxy useDefaultCredentials="true" enabled="true"> </defaultProxy> <settings> <ipv6 enabled="true"/> </settings> </system.net> मेरे लिए काम करें, इसने सिस्टम प्रॉक्सी सेटिंग्स का इस्तेमाल किया। विन्डोज़ 10 पर परीक्षण किया गया
वैन थोई न्गुयेन

11

बस अगर आप nuget ( https://www.nuget.org ) के https संस्करण का उपयोग कर रहे हैं , तो ध्यान रखें कि आपको https के लिए मान सेट करना होगा।

  • https_proxy
  • https_proxy.user
  • https_proxy.password

1
Https पासवर्ड nuget.config में सादा पाठ है, अगर आप आर्काइव गाइड का पालन करते हैं लेकिन https
dmce

इसने मेरे मुद्दे को तय किया, अधिक जानकारी यहाँ github.com/NuGet/Home/issues/5980
जिपरसन

यदि हम nuget के https संस्करण का उपयोग कर रहे हैं तो हम प्रॉक्सी एड्रेस सेट करने के लिए 'http' का उपयोग नहीं कर सकते हैं?
कोडर केम्प

8

मैं गलत हो सकता है, लेकिन मुझे लगा कि यह IE की प्रॉक्सी सेटिंग्स का उपयोग करता है।

यदि यह देखता है कि आपको लॉगिन करने की आवश्यकता है तो यह एक संवाद खोलता है और आपसे ऐसा करने के लिए कहता है (लॉगिन है)।

इसका विवरण यहाँ देखें -> http://docs.nuget.org/docs/release-notes/nuget-1.5


1
यह करता है - इस दृष्टिकोण के साथ मुद्दा तब उठता है जब आपके निगम की समूह नीति लगातार अपने IE सेटिंग्स को उन लोगों के लिए पुन: पेश करती है जो Nuget के साथ काम नहीं करते हैं, जैसा कि मेरे काम की जगह पर होता है
Xcalibur

5

VS2015 का उपयोग करने वाले किसी व्यक्ति के लिए: मैं "407 प्रॉक्सी प्रमाणीकरण आवश्यक" त्रुटि का सामना कर रहा था, जिसने मेरा निर्माण तोड़ दिया। कुछ घंटों की जांच के बाद, यह पता चलता है कि जब Nuget को 'DownloadNuGet' लक्ष्य के हिस्से के रूप में डाउनलोड करने की कोशिश में MSBuild क्रेडेंशियल्स नहीं भेज रहा था। निम्नलिखित XML को C: \ Program Files (x86) \ MSBuild \ 14.0 \ Bin \ MSBuild.exe.config <configuration>तत्व के अंदर जोड़ना था :

<system.net>
            <defaultProxy useDefaultCredentials="true">
            </defaultProxy>
</system.net>

4

मेरे लिए समाधान को शामिल करना था

<configuration>
  <config>
    <add key="http_proxy" value="http://<IP>:<Port>" />
    <add key="http_proxy.user" value="<user>" />
    <add key="http_proxy.password" value="<password>" />
  </config>
</configuration>

में nuget.configफ़ाइल।


1
मुझे यह फ़ाइल कहां मिल सकती है?
मार्सेलो मचाडो

2
@MarceloMachado: यहाँ:% AppData% \ NuGet \ NuGet.config
Torben Kohlmeier

उपयोगकर्ता का nuget.config स्थान विंडोज 10 पर:% AppData% \ Roaming \ Nuget \ NuGet.config
स्टेटो

आप उपयोगकर्ता नाम और पासवर्ड निर्दिष्ट किए बिना अकेले `<Add key =" http_proxy "मान =" http: // <IP>: <पोर्ट> "/> का चयन कर सकते हैं। उसके बाद Visual Studio को पुनरारंभ करना याद रखें!
tllorswiftfan

वीएस को फिर से शुरू करना महत्वपूर्ण है! इसके अलावा, मुझे लगता है कि मेरे पास व्यवस्थापक के रूप में चलने वाले मुद्दे थे (एक नियमित उपयोगकर्ता के रूप में चलाने की आवश्यकता है?)
मंगल

4

एक ही "nuget के लिए प्रॉक्सी" के लिए एक और स्वाद: वैकल्पिक रूप से आप के माध्यम से कनेक्ट करने के लिए अपने nuget proxing सेटिंग सेट कर सकते Fiddler । नीचे cmd उपयोगकर्ता के लिए डिफ़ॉल्ट नगेट कॉन्फिग फ़ाइल में प्रॉक्सी सेटिंग्स को बचाएगा%APPDATA%\NuGet\NuGet.Config

nuget config -Set HTTP_PROXY=http://127.0.0.1:8888

जब भी आपको इंटरनेट तक पहुंचने के लिए नगेट की आवश्यकता होती है, तो बस फ़िडलर खोलें, मान लें कि आपके पास डिफ़ॉल्ट पोर्ट 8888 पर सुनने वाला फ़िडलर है।

यह कॉन्फ़िगरेशन पासवर्क परिवर्तनों के लिए संवेदनशील नहीं है क्योंकि फ़िडलर आपके लिए स्ट्रीम प्रॉक्सी के साथ किसी भी प्रमाणीकरण को हल करेगा।


2

शायद यह किसी और की मदद करता है। मेरे लिए यह समाधान विजुअल स्टूडियो (2015/2017) पर NuGet सेटिंग्स खोलने और एक नया फ़ीड URL जोड़ने का था: http://www.nuget.org/api/v2/

मुझे किसी भी प्रॉक्सी से संबंधित सेटिंग्स को बदलना नहीं था।


1

बस एक छोटा सा जोड़ ...

यदि यह आपके लिए केवल http_proxy सेटिंग की आपूर्ति करने का काम करता है, न कि उपयोगकर्ता नाम और पासवर्ड की, तो मैं प्रॉक्सी सेटिंग को किसी प्रोजेक्ट nuget.config फ़ाइल में डालने की सलाह दूंगा और इसे स्रोत नियंत्रण में करूँगा। इस तरह सभी टीम के सदस्यों को एक जैसी सेटिंग्स मिलती हैं।

एक रिक्त बनाएं। \ Nuget.config

   <?xml version="1.0" encoding="utf-8"?>
   <configuration>
   </configuration>

फिर:

   nuget config -Set http_proxy="http://myproxy.example.com:8080" -ConfigFile .\Nuget.Config

और अंत में अपना नया प्रोजेक्ट लोकल Nuget.config फाइल करें।


0

यह कोशिश करो । मूल रूप से, कनेक्शन विफल हो सकता है यदि आपका सिस्टम नगेट प्रमाणपत्र पर भरोसा नहीं करता है।


0

@Arcain के सुझावों के अलावा मुझे अपने प्रॉक्सी सर्वर की लिस्ट में निम्नलिखित Windows Azure Content Delivery Network url को शामिल करना था:

.msecnd.net

0

ऊपर दिए गए उपाय @arcain प्लस द्वारा नीचे दिए गए चरणों ने मुझे समस्या हल कर दी

  1. Nuget.org सेटिंग्स का उपयोग करने के लिए चेकबॉक्स की जांच करने के लिए Nuget पैकेज चरनी सेटिंग्स के तहत "पैकेज स्रोतों" को संशोधित करके मेरे मुद्दे को हल किया।

  2. मैंने पैकेज स्रोत के पहले विकल्प के रूप में उस (nuget.org) का उपयोग करने के लिए भी बदल दिया,
    मैंने यह सुनिश्चित करने के लिए अपनी कंपनी के पैकेज स्रोतों को अनचेक किया था ताकि यह सुनिश्चित किया जा सके कि नगेट को हमेशा वैश्विक स्रोतों से उठाया गया था।


0

विंडोज सर्वर 2016 स्टैंडर्ड पर, जो मैं विकसित कर रहा हूं, मुझे सिर्फ क्रेडेंशियल मैनेजर कंट्रोल पैनल खोलना था और विजुअल स्टूडियो के लिए कैश्ड प्रॉक्सी सेटिंग्स को क्लियर करना था जो अब मान्य नहीं थे और फिर विजुअल स्टूडियो को पुनरारंभ करें। अगली बार जब मैंने Nuget Package Manager खोला तो मुझे प्रॉक्सी क्रेडेंशियल्स के लिए संकेत दिया गया था, जो मुझे फिर से काम करने लगा।

देखें: https://support.microsoft.com/en-us/help/4026814/windows-accessing-credit-nager

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.