webentwicklung-frage-antwort-db.com.de

NuGet hinter einem Proxy

Ich finde heraus, dass NuGet die Konfiguration von Proxy-Einstellungen seit Version 1.4 erlaubt. Ich kann jedoch kein Befehlszeilenbeispiel finden.

Ich versuche einen Build auszuführen und NuGet kann keine Verbindung herstellen.

Wie konfiguriere ich die Proxy-Einstellungen in der Befehlszeile?

89
Ricardo

Hier ist, was ich getan habe, um dies mit meinem Unternehmensproxy, der die NTLM-Authentifizierung verwendet, zum Funktionieren zu bringen. Ich habe NuGet.exe heruntergeladen und dann die folgenden Befehle ausgeführt (die ich in den Kommentaren zu dieser Diskussion) gefunden habe auf 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

In meinem NuGet.config Unter %appdata%\NuGet (Das C:\Users\myUserName\AppData\Roaming in Windows 7 zugeordnet ist) wird Folgendes eingefügt: Maschine):

<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>

Übrigens hat dies auch mein Problem behoben, bei dem NuGet nur beim ersten Aufrufen der Paketquelle in Visual Studio funktioniert hat.

Beachten Sie, dass einige Benutzer, die diesen Ansatz ausprobiert haben, in den Kommentaren angegeben haben, dass sie das Festlegen der http_proxy.password - Taste in der Befehlszeile weglassen oder sie nachträglich löschen konnten aus der Konfigurationsdatei, und konnten immer noch NuGet-Funktion über den Proxy haben.

Wenn Sie jedoch feststellen, dass Sie Ihr Passwort in der NuGet-Konfigurationsdatei angeben müssen, denken Sie daran, dass Sie das gespeicherte Passwort in der aktualisieren müssen NuGet-Konfiguration über die Befehlszeile, wenn Sie Ihre Netzwerkanmeldung ändern, wenn Ihre Proxy-Anmeldeinformationen auch Ihre Netzwerkanmeldeinformationen sind .

177
arcain

Vielleicht könntest du das an deiner devenv.exe.config versuchen

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

Ich fand es aus dem NuGet Issue Tracker

Es gibt auch andere wertvolle Kommentare zu NuGet + -Netzwerkproblemen.

21
Tx3

Nur für den Fall, dass Sie die https-Version von nuget ( https://www.nuget.org ) verwenden, müssen Sie die Werte mit https einstellen.

  • https_proxy
  • https_proxy.user
  • https_proxy.password
10
Roman Mahrer

Ich könnte mich irren, aber ich dachte, es werden die Proxy-Einstellungen des IE verwendet.

Wenn angezeigt wird, dass Sie sich anmelden müssen, wird ein Dialogfeld geöffnet, in dem Sie dazu aufgefordert werden (dh anmelden).

Bitte lesen Sie die Beschreibung hier -> http://docs.nuget.org/docs/release-notes/nuget-1.5

7
David McLean

An alle Benutzer von VS2015: Ich habe den Fehler "407 Proxy Authentication required" (407 Proxy-Authentifizierung erforderlich) festgestellt, durch den mein Build unterbrochen wurde. Nach einigen Stunden stellte sich heraus, dass MSBuild beim Versuch, Nuget als Teil des Ziels "DownloadNuGet" herunterzuladen, keine Anmeldeinformationen gesendet hat. Die Lösung bestand darin, das folgende XML zu C:\Programme (x86)\MSBuild\14.0\Bin\MSBuild.exe.config im Element <configuration> Hinzuzufügen:

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

Die Lösung für mich war einzuschließen

<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>

In dem nuget.config Datei.

2
jfernandeze

Vielleicht hilft das jemand anderem. Für mich bestand die Lösung darin, die NuGet-Einstellungen in Visual Studio (2015/2017) zu öffnen und eine neue Feed-URL hinzuzufügen: http://www.nuget.org/api/v2/ .

Ich musste keine Proxy-bezogenen Einstellungen ändern.

Eine weitere Variante für denselben "Proxy für Nuget": Alternativ können Sie Ihre Nuget-Proxy-Einstellungen so einstellen, dass eine Verbindung über Fiddler hergestellt wird. Unter Cmd werden Proxy-Einstellungen in der Standard-Nuget-Konfigurationsdatei für Benutzer unter% APPDATA%\NuGet\NuGet.Config gespeichert

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

Wann immer Sie Nuget benötigen, um auf das Internet zuzugreifen, öffnen Sie einfach Fiddler. Angenommen, Sie haben Fiddler, der den Standardport 8888 abhört.

Diese Konfiguration ist nicht anfällig für Änderungen an Passwörtern, da Fiddler die Authentifizierung mit dem Upstream-Proxy für Sie auflöst.

1
Aishel M

Nur eine kleine Zugabe ...

Wenn Sie nur die Einstellung http_proxy und nicht den Benutzernamen und das Kennwort angeben, empfiehlt es sich, die Proxy-Einstellungen in eine projektlokale Datei nuget.config zu schreiben und sie der Quellcodeverwaltung zuzuweisen. Auf diese Weise erhalten alle Teammitglieder die gleichen Einstellungen.

Erstellen Sie eine leere.\Nuget.config

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

Dann:

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

Und zum Schluss die lokale Nuget.config-Datei Ihres neuen Projekts festschreiben.

1
8DH

Versuchen Sie dies . Grundsätzlich kann die Verbindung fehlschlagen, wenn Ihr System dem Nuget-Zertifikat nicht vertraut.

0
Ivan Danilov

Abgesehen von den Vorschlägen von @arcain musste ich die folgende Windows Azure Content Delivery Network-URL auf die Whitelist unseres Proxyservers setzen:

.msecnd.net
0
mithun_daa

Oben Lösung von @arcain Plus unten Schritte lösten mich das Problem

  1. Das Ändern der "Paketquellen" unter den Einstellungen von Nuget Package Manager, um das Kontrollkästchen zur Verwendung der Einstellungen von nuget.org zu aktivieren, behebt das Problem.

  2. Ich habe auch geändert, um das (nuget.org) als erste Wahl der Paketquelle zu verwenden
    Ich habe die Quellen meiner Unternehmenspakete deaktiviert, um sicherzustellen, dass das Nuget immer von globalen Quellen bezogen wurde.

0
Ram