Pytanie NuGet za proxy


Rozumiem, że NuGet umożliwia konfigurację ustawień proxy od wersji 1.4. Ale nie mogę znaleźć żadnego przykładu wiersza poleceń.

Próbuję uruchomić trochę kompilacji i NuGet nie może się połączyć.

Jak skonfigurować ustawienia proxy w wierszu poleceń?


76
2018-02-10 17:34


pochodzenie


Z korzyścią dla innych użytkowników napotykających problemy z proxy: będziesz wiedzieć, że może to być proxy, jeśli NuGet wyświetli komunikat: "Nie można rozwiązać nazwy zdalnej: 'nuget.org'" - pduncan
Uważaj, aby sprawdzić http_proxy i https_proxy zmienne środowiskowe, a także ustawienia proxy systemu - Colonel Panic
Na Githubie jest teraz problem: github.com/NuGet/Home/issues/458 - thekip


Odpowiedzi:


Oto, co zrobiłem, aby to działało z moim korporacyjnym proxy, które używa uwierzytelniania NTLM. Pobrałem NuGet.exe a następnie uruchomiono następujące polecenia (które znalazłem w komentarzach do ta dyskusja na CodePlex):

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

To umieściło następujące w moim NuGet.config zlokalizowany w %appdata%\NuGet (który mapuje do C: \ Users \ myUserName \ AppData \ Roaming na moim komputerze z systemem Windows 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>

Nawiasem mówiąc, to również naprawiło mój problem z NuGet działa tylko przy pierwszym uruchomieniu źródła pakietu w Visual Studio.

Należy zauważyć, że niektórzy ludzie, którzy próbowali tego podejścia, zgłosili poprzez komentarze, że mogli pominąć ustawienie http_proxy.password klucz z wiersza poleceń, lub usuń go po fakcie z pliku konfiguracyjnego, i nadal mógł mieć funkcję NuGet przez proxy.

Jeśli jednak znajdziesz to ty musi podaj swoje hasło w pliku konfiguracyjnym NuGet, pamiętaj, że musisz zaktualizować przechowywane hasło w konfiguracji NuGet z wiersza poleceń podczas zmiany loginu sieciowego, jeśli twoje poświadczenia proxy są także twoimi poświadczeniami sieciowymi.


147
2018-03-17 17:34



W moim przypadku pominąłem http_proxy.password Klucz całkowicie i wydawało się być szczęśliwy, aby przejść przez moje uwierzytelnione poświadczenia AD. To oszczędza potrzebę częstej zmiany hasła. - Sir Crispalot
Dziękuję, dziękuję, dziękuję, dziękuję, dziękuję, dziękuję, dziękuję, dziękuję, dziękuję, dziękuję, dziękuję, dziękuję, dziękuje, dziękuje, dziękuje, dziękuje, dziękuje ciebie , Dziękuję Ci.... - lmsasu
Ostrzeżenie Zachowaj ostrożność podczas korzystania z konfiguracji sugerowanej przez arcane. Upewnij się, że zmieniasz hasło w pliku konfiguracyjnym po zmianie hasła systemu Windows. Moje konto Windows zostało losowo zablokowane po zmianie hasła zgodnie z polityką firmy. Zajęło mi kilka godzin, aby dowiedzieć się, że jest to wpis konfiguracyjny powodujący ten problem. Najlepszym rozwiązaniem jest po prostu usunięcie http_proxy.password klucz zgodnie z sugestią @Sir Crispalot - A J Qarshi
Wypróbuj to, o czym wspominał Sir Crispalot i usuń klucz http_proxy.password. To zadziałało dla niektórych osób i pozwoliło im uniknąć konieczności zmiany hasła w pliku konfiguracyjnym NuGet. - arcain
Kolejne zwycięstwo tutaj - użycie tych ustawień i pominięcie klucza hasła działało dla mnie za moim korporacyjnym proxy z uwierzytelnianiem NTLM. - Cᴏʀʏ


Może mógłbyś spróbować tego do swojego 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>

Znalazłem to z Narzędzie do śledzenia problemów NuGet

Istnieją również inne cenne uwagi na temat problemów z siecią NuGet +.


19
2018-02-28 14:13



ale to zakłada, że ​​devenve.exe (Visual Studio to jest) jest zainstalowany, który nie powinien znajdować się na serwerze kompilacji - Kat Lim Ruiz
Musiałem usunąć to ustawienie, aby działało, tak aby było zgodne z ustawieniami proxy IE. - Rosdi Kasim


Na wszelki wypadek, gdy używasz wersji https nuget (https://www.nuget.org), pamiętaj, że musisz ustawić wartości za pomocą https.

  • https_proxy
  • https_proxy.user
  • https_proxy.password

8
2018-05-22 10:19



Hasło https jest zwykłym tekstem w pliku nuget.config, jeśli podążasz za przewodnikiem po łukach, ale korzystasz z https - dmce
Nie dla necro, ale to całkowicie naprawiło mój problem. Dzięki! - Bcbury
To naprawiło mój problem, więcej szczegółów tutaj github.com/NuGet/Home/issues/5980. - jpierson
Dziękuję za zwrócenie na to uwagi, byłem tak sfrustrowany. - MarkyMarksFunkyBunch
Więc nie możemy użyć "http" do ustawienia adresu proxy, jeśli używamy wersji nuget w wersji https? - coder kemp


Mogę się mylić, ale pomyślałem, że użył ustawień proxy dla IE.

Jeśli zobaczy, że musisz się zalogować, otwiera okno dialogowe i prosi, aby to zrobić (zaloguj się).

Zobacz opis tego tutaj -> http://docs.nuget.org/docs/release-notes/nuget-1.5 


6
2018-02-28 14:06



Czyni - problem z tym podejściem powstaje, gdy polityka grupowa twojej korporacji nieustannie przywraca twoje ustawienia IE do tych, które nie działają z Nuget, jak dzieje się to w moim miejscu pracy - Xcalibur


Każdemu, kto używa VS2015: napotkałem błąd "Wymagane uwierzytelnienie 407 proxy", które zepsuło moją kompilację. Po kilku godzinach badań okazało się, że MSBuild nie wysyła danych uwierzytelniających, próbując pobrać Nuget w ramach celu "DownloadNuGet". Rozwiązaniem było dodanie następującego XML do C: \ Program Files (x86) \ MSBuild \ 14.0 \ Bin \ MSBuild.exe.config wewnątrz <configuration> element:

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

4
2018-04-11 17:45



Doskonały, pracował dla mnie, miły i prosty, dzięki. - DaveInCaz


Może to pomaga komuś innemu. Dla mnie rozwiązaniem było otwarcie ustawień NuGet w Visual Studio (2015/2017) i dodanie nowego adresu URL kanału: http://www.nuget.org/api/v2/.

Nie musiałem zmieniać żadnych ustawień związanych z serwerem proxy.


2
2018-03-17 18:35





Kolejny smak tego samego "proxy dla nuget": alternatywnie możesz ustawić swoje ustawienia proxy proxy, aby się połączyć skrzypek. Poniżej cmd zapisze ustawienia proxy w domyślnym pliku konfiguracyjnym nuget dla użytkownika na% APPDATA% \ NuGet \ NuGet.Config

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

Ilekroć potrzebujesz nuget, aby dotrzeć do internetu, po prostu otwórz Fiddlera, asumming masz słuchanie przez skrzypce na domyślnym porcie 8888.

Ta konfiguracja nie jest wrażliwa na zmiany hasła, ponieważ skrzypek rozwiąże wszelkie uwierzytelnienia za pomocą proxy upstream.


1
2017-07-30 14:00





Tylko mały dodatek ...

Jeśli działa pod warunkiem, że podasz tylko ustawienie http_proxy, a nie nazwę użytkownika i hasło, polecam umieszczenie ustawień proxy w pliku projektu lokalnego nuget.config i zatwierdzenie go do kontroli źródła. W ten sposób wszyscy członkowie zespołu otrzymają te same ustawienia.

Utwórz pusty. \ Nuget.config

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

Następnie:

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

I w końcu zatwierdzić nowy plik lokalnego projektu Nuget.config.


1
2017-07-31 11:51





Próbować to. Zasadniczo połączenie może się nie udać, jeśli twój system nie zaufa certyfikatowi nuget.


0
2017-12-06 15:49





Oprócz sugestii @arcain musiałem dodać następujący adres URL usługi Windows Azure Content Delivery Network do białej listy na serwerze proxy:

.msecnd.net

0
2017-07-07 21:38





Above Solution autorstwa @arcain Plus poniżej kroki rozwiązały mnie problem

  1. Modyfikowanie "źródeł pakietów" w ustawieniach menedżera pakietów Nuget do sprawdzenia pole wyboru do korzystania z ustawień nuget.org rozwiązało mój problem.

  2. Zmieniłem także, aby użyć tego (nuget.org) jako pierwszego wyboru źródła pakietu
    Usunąłem informacje o źródłach pakietów firmowych, aby upewnić się, że nuget był zawsze wybierany ze źródeł globalnych.


0
2017-11-08 03:21