以下是我使用企业代理服务器NTLM身份验证的方法,让它正常工作。我下载了 NuGet.exe 然后运行了下面这些命令(我在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
我将以下内容放入了我的NuGet.config
文件中,该文件位于%appdata%\NuGet
目录下(在我的Windows 7电脑上映射到C:\Users\myUserName\AppData\Roaming):
<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>
顺便提一下,这也解决了我在Visual Studio中第一次访问软件包源时NuGet只能工作一次的问题。
请注意,有些人尝试过这种方法后通过评论报告说他们能够省略从命令行设置
http_proxy.password
键或者在配置文件中事后删除它,并且仍然能够使NuGet跨代理正常工作。
如果您发现必须在NuGet配置文件中指定密码,请记住当您更改网络登录信息时,您必须从命令行更新NuGet配置中存储的密码,如果您的代理凭据也是您的网络凭据。
或许您可以尝试将此内容添加到 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问题跟踪器中发现了它。
还有其他关于NuGet和网络问题的有价值的评论。
如果您正在使用 NuGet 的 HTTPS 版本,请注意您必须使用 HTTPS 设置以下值:
https_proxy
https_proxy.user
https_proxy.password
我可能错了,但我认为它使用IE的代理设置。
如果它发现您需要登录,它会打开一个对话框并要求您登录。
请参见此处的说明-> http://docs.nuget.org/docs/release-notes/nuget-1.5
同样是“代理NuGet”的另一种方式:您可以将NuGet代理设置为通过Fiddler连接。以下命令将在默认的NuGet配置文件中保存用户的代理设置,路径为%APPDATA%\NuGet\NuGet.Config
。
nuget config -Set HTTP_PROXY=http://127.0.0.1:8888
每当您需要 NuGet 访问互联网时,只需打开 Fiddler,假设您的 Fiddler 正在监听默认端口 8888。
这个配置不会受到密码更改的影响,因为 Fiddler 将为您解决任何与上游代理的身份验证。
<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
文件中。 <add key="http_proxy" value="http://<IP>:<Port>" />
而不指定用户名和密码。记得在此之后重新启动 Visual Studio! - taylorswiftfan对于使用VS2015的用户:我遇到了一个“407代理身份验证”错误,这导致我的构建失败。经过几个小时的调查,发现MSBuild在尝试下载Nuget作为“DownloadNuGet”目标的一部分时没有发送凭据。解决方案是将以下XML添加到C:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe.config文件中<configuration>
元素内:
<system.net>
<defaultProxy useDefaultCredentials="true">
</defaultProxy>
</system.net>
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
</packageSources>
</configuration>
完整路径应为C:\ Users<username>\ AppData \ Roaming \ NuGet \ NuGet.Config
基本上设置了代理,我不知道为什么和如何设置,但它存在,并且我也无法ping通。
http_proxy
和https_proxy
环境变量以及您的系统代理设置。 - Colonel Panic