web-dev-qa-db-fra.com

NuGet derrière un proxy

Je comprends que NuGet permet la configuration des paramètres de proxy depuis la version 1.4. Mais je ne trouve aucun exemple de ligne de commande.

J'essaie de lancer certaines versions et NuGet ne peut pas se connecter.

Comment configurer les paramètres de proxy sur la ligne de commande?

89
Ricardo

Voici ce que j'ai fait pour que cela fonctionne avec mon proxy d'entreprise qui utilise l'authentification NTLM. J'ai téléchargé NuGet.exe puis ai exécuté les commandes suivantes (que j'ai trouvées dans les commentaires à cette discussion sur 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

Ceci a mis le suivant dans mon NuGet.config situé à %appdata%\NuGet (qui correspond à C:\Utilisateurs\monUserName\AppData\Roaming sur mon ordinateur 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>

Incidemment, cela a également corrigé mon problème avec NuGet ne fonctionnant que la première fois que je consultais la source du paquet dans Visual Studio.

Notez que certaines personnes qui ont essayé cette approche ont signalé à travers les commentaires qu’elles ont pu omettre de régler le http_proxy.password sur la ligne de commande, ou supprimez-la après-coup du fichier de configuration, et avez toujours la possibilité d'utiliser NuGet sur le proxy.

Si vous constatez cependant que vous devez indiquez votre mot de passe dans le fichier de configuration de NuGet, rappelez-vous que vous devez mettre à jour le mot de passe stocké dans la configuration de NuGet à partir de la ligne de commande lorsque vous modifiez votre connexion réseau, si vos informations d'identification de proxy sont également vos informations d'identification réseau .

177
arcain

Peut-être pourriez-vous essayer ceci avec votre 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>

Je l'ai trouvé dans le suivi des problèmes de NuGet

Il existe également d'autres commentaires précieux sur les problèmes de réseau NuGet +.

21
Tx3

Juste au cas où vous utiliseriez la version https de nuget ( https://www.nuget.org ), sachez que vous devez définir les valeurs avec https.

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

Je peux me tromper, mais je pensais qu'il utilisait les paramètres de proxy d'IE.

S'il voit que vous devez vous connecter, il ouvre une boîte de dialogue et vous invite à le faire (connexion en cours).

Veuillez voir la description de ceci ici -> http://docs.nuget.org/docs/release-notes/nuget-1.5

7
David McLean

À tous ceux qui utilisent VS2015: je rencontrais une erreur "Authentification requise du proxy 407", qui a cassé ma construction. Après quelques heures d’investigation, MSBuild n’envoyait pas les informations d’identité lorsqu’il essayait de télécharger Nuget dans le cadre de la cible "DownloadNuGet". La solution consistait à ajouter le code XML suivant à C:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe.config dans le fichier <configuration> élément:

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

La solution pour moi était d'inclure

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

Dans le nuget.config fichier.

2
jfernandeze

Peut-être que cela aide quelqu'un d'autre. Pour moi, la solution consistait à ouvrir les paramètres NuGet sur Visual Studio (2015/2017) et à ajouter une nouvelle URL de flux: http://www.nuget.org/api/v2/ .

Je n'ai pas eu à modifier les paramètres liés au proxy.

Une autre variante du même "proxy pour nuget": vous pouvez également définir les paramètres de proxy du nuget pour qu'ils se connectent via fiddler . Au-dessous de cmd, les paramètres de proxy seront sauvegardés dans le fichier de configuration de nuget par défaut pour l'utilisateur situé à% APPDATA%\NuGet\NuGet.Config.

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

Dès que vous avez besoin d’un nuget pour accéder à Internet, ouvrez simplement Fiddler, en attendant que vous ayez un violon qui écoute sur le port par défaut 8888.

Cette configuration n'est pas sensible aux modifications de Passwork, car Fiddler résoudra toute authentification avec un proxy en amont pour vous.

1
Aishel M

Juste un petit ajout ...

Si vous ne pouvez fournir que le paramètre http_proxy et non le nom d'utilisateur et le mot de passe, nous vous recommandons de placer les paramètres de proxy dans un fichier nuget.config local du projet et de le valider pour le contrôle de code source. Ainsi, tous les membres de l’équipe obtiennent les mêmes paramètres.

Créez un fichier vide.\Nuget.config

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

Ensuite:

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

Et enfin, validez votre nouveau fichier Nuget.config local du projet.

1
8DH

Essayez this . Fondamentalement, la connexion peut échouer si votre système ne fait pas confiance au certificat de nuget.

0
Ivan Danilov

Outre les suggestions de @arcain, je devais ajouter l'URL Windows Azure Content Delivery Network suivante à la liste blanche de notre serveur proxy:

.msecnd.net
0
mithun_daa

Au-dessus de Solution by @arcain Plus, les étapes ci-dessous m'ont résolu le problème

  1. La modification des "sources de paquet" sous les paramètres du gestionnaire de paquetages Nuget pour cocher la case permettant d'utiliser les paramètres de nuget.org a résolu mon problème.

  2. J'ai également changé pour utiliser cela (nuget.org) comme premier choix de la source du paquet
    J'ai décoché les sources de paquet de mon entreprise pour m'assurer que la pépite était toujours récupérée à partir de sources mondiales.

0
Ram