NuGet Derrière Proxy
je me rends compte que NuGet permet la configuration des paramètres de proxy depuis la version 1.4. Mais je ne trouve aucun exemple en ligne de commande.
j'essaye de lancer une construction et NuGet ne peut pas se connecter.
Comment configurer les paramètres de proxy dans la ligne de commande?
12 réponses
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 et a ensuite 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
cela a mis ce qui suit dans mon NuGet.config
situé à %appdata%\NuGet
(qui correspond à C:\Users\myUserName\AppData\Roaming sur ma machine 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>
soit dit en passant, cela a aussi corrigé mon problème avec NuGet ne travaillant que la première fois que je clique sur le paquet source dans Visual Studio.
notez que certaines personnes qui ont essayé cette approche ont rapporté à travers les commentaires qu'ils ont été en mesure d'omettre le paramétrage de la touche
http_proxy.password
de la ligne de commande, ou de la supprimer après-coup du fichier de configuration, et étaient toujours en mesure d'avoir Fonction NuGet à travers le proxy.
si vous trouvez, cependant, que vous devez spécifier votre mot de passe dans le fichier de configuration NuGet, rappelez-vous que vous devez mettre à jour le mot de passe stocké dans la configuration NuGet à partir de la ligne de commande lorsque vous changez votre connexion réseau, si vos justificatifs d'identité proxy sont aussi vos justificatifs d'identité réseau .
peut-être pourriez-vous essayer ceci à 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 NuGet Issue tracker
il y a aussi d'autres commentaires intéressants sur les questions du réseau NuGet+.
juste au cas où vous utilisez la version https de nuget ( https://www.nuget.org ), soyez conscient que vous devez définir les valeurs avec https.
- https_proxy
- https_proxy.utilisateur
- https_proxy.mot de passe
je pourrais me tromper mais j'ai pensé qu'il utilisait les paramètres proxy D'IE.
Si elle voit que vous avez besoin pour vous connecter, cela ouvre une boîte de dialogue et vous demande de le faire (connexion).
s'il vous Plaît voir la description de cet ici -> http://docs.nuget.org/docs/release-notes/nuget-1.5
à toute personne utilisant VS2015: j'ai rencontré une erreur" 407 Proxy Authentication required", qui a cassé ma construction. Après quelques heures d'enquête, il s'avère que MSBuild n'envoyait pas de justificatifs d'identité en essayant de télécharger Nuget dans le cadre de la cible 'DownloadNuGet'. La solution était d'ajouter le XML suivant à C:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.EXE.config à l'intérieur de l'élément <configuration>
:
<system.net>
<defaultProxy useDefaultCredentials="true">
</defaultProxy>
</system.net>
peut-être que ça aide quelqu'un d'autre. Pour moi, la solution était d'ouvrir les paramètres NuGet sur Visual Studio (2015/2017) et d'ajouter une nouvelle URL de flux: http://www.nuget.org/api/v2 / .
Je n'ai pas eu à changer les paramètres relatifs au proxy.
une autre saveur pour le même" proxy pour nuget": vous pouvez également définir vos paramètres de proxing nuget pour vous connecter via fiddler . Ci-dessous cmd va enregistrer les paramètres de proxy dans le fichier de configuration nuget par défaut pour l'utilisateur à %APPDATA%\NuGet\NuGet.Config
nuget config-Set HTTP_PROXY= http://127.0.0.1:8888
chaque fois que vous avez besoin de nuget pour atteindre l'internet, il suffit d'ouvrir Fiddler, asumming vous avez écoute fiddler sur le port par défaut 8888.
cette configuration n'est pas sensible aux changements de mot de passe car fiddler résoudra toute authentification avec le proxy up stream pour vous.
juste un petit ajout...
si cela fonctionne pour que vous ne fournissiez que le paramètre http_proxy et non le nom d'utilisateur et le mot de passe, je vous recommande de placer les paramètres proxy dans un nuget local de projet.le fichier de configuration et le commiter. Comme ça tous les membres de l'équipe auront les mêmes réglages.
créer un vide .\ nuget.config
<?xml version="1.0" encoding="utf-8"?>
<configuration>
</configuration>
puis:
nuget config -Set http_proxy="http://myproxy.example.com:8080" -ConfigFile .\Nuget.Config
et finalement engager votre nouveau projet local Nuget.fichier de configuration.
Essayer ce . Fondamentalement, la connexion pourrait échouer si votre système ne fait pas confiance au certificat nuget.
outre les suggestions de @arcain, j'ai dû ajouter L'url suivante du réseau de diffusion de contenu Windows Azure à la liste blanche de notre serveur mandataire:
.msecnd.net
ci-dessus Solution par @arcain Plus ci-dessous les étapes m'ont résolu le problème
-
Modifier les" sources du paquet " sous Nuget package manger paramètres à vérifier la case à cocher pour utiliser le nuget.org les réglages ont résolu mon problème.
-
j'ai également changé pour utiliser que(nuget.org) comme premier choix de paquet source
J'ai fait uncheck mon entreprise package sources pour s'assurer que le nuget a été toujours repris de sources mondiales.
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 fichier nuget.config
.