NuGet在代理之后

我发现NuGet自1.4版本开始允许代理设置configuration。 但是,我找不到任何命令行的例子。

我试图运行一些构build和NuGet无法连接。

如何在命令行中configuration代理设置?

以下是我所做的与使用NTLM身份validation的公司代理一起工作的方法。 我下载了NuGet.exe ,然后运行下面的命令(我在CodePlex上对这个讨论的评论中find了这些命令):

 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)的NuGet.config中

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

顺便说一下,这也解决了我的问题与NuGet只工作在Visual Studio中第一次打包的源代码。

请注意,一些尝试过这种方法的人已经通过注释报告,他们已经能够省略从命令行设置http_proxy.password密钥,或从configuration文件中事后删除它,仍然能够在代理上有NuGetfunction。

但是,如果您发现必须在NuGetconfiguration文件中指定密码, 请记住,如果您的代理凭证也是您的networking,则必须在更改networkinglogin时从命令行更新NuGetconfiguration中存储的密码证书

也许你可以试试这个到你的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 Issue跟踪器中find它

还有关于NuGet +networking问题的其他宝贵意见。

如果您使用https版本的nuget( https://www.nuget.org ),请注意您必须使用https设置值。

  • https_proxy
  • https_proxy.user
  • https_proxy.password

我可能是错的,但我认为它使用IE的代理设置。

如果它看到你需要login,它会打开一个对话框,并要求你这样做(login是)。

请看这里的描述 – > http://docs.nuget.org/docs/release-notes/nuget-1.5

对于任何使用VS2015的人:我遇到了“407代理身份validation要求”的错误,这打破了我的构build。 经过几个小时的调查,事实certificate,当试图下载Nuget作为“DownloadNuGet”目标的一部分时,MSBuild没有发送证书。 解决scheme是将以下XML添加到<configuration>元素内的C:\ Program Files(x86)\ MSBuild \ 14.0 \ Bin \ MSBuild.exe.config:

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

也许这有助于别人。 对我来说,解决scheme是在Visual Studio(2015/2017)上打开NuGet设置,并添加一个新的提要URL: http : //www.nuget.org/api/v2/ 。

我不必更改任何代理相关的设置。

同样的“代理nuget”的另一个味道:或者你可以设置你的nuget proxing设置通过提琴手连接。 在cmd下面将保存在%APPDATA%\ NuGet \ NuGet.Config用户的默认nugetconfiguration文件中的代理设置

nuget config – 设置HTTP_PROXY = http://127.0.0.1:8888

每当你需要nuget来接触互联网时,只需打开Fiddler,你就可以在默认的8888端口上听到提琴手的声音。

此configuration对passwork更改不敏感,因为fiddler将为您parsing使用上游代理的任何validation。

只是一小部分…

如果它只为您提供http_proxy设置,而不是用户名和密码,我build议将代理设置放在项目本地nuget.config文件中,并将其提交给源代码pipe理。 这样所有的团队成员都可以得到相同的设置。

创build一个空的\ nuget.config

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

然后:

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

最后提交你的新项目的本地Nuget.config文件。

试试这个 。 基本上,如果你的系统不信任nuget证书,连接可能会失败。

除了@arcain的build议之外,我不得不将下面的Windows Azure Content Delivery Network url添加到我们的代理服务器的白名单中:

 .msecnd.net 

以上解决scheme@arcain加上下面的步骤解决了我的问题

  1. 修改Nuget包pipe理器设置下的“包源代码”以选中checkbox以使用nuget.org设置解决了我的问题。

  2. 我也改变了使用(nuget.org)作为包源的第一select
    我没有检查我的公司包来源,以确保nuget总是从全球来源。

我的解决scheme是包括

 <add key="http_proxy" value="http://<IP>:<Port>" /> <add key="http_proxy.user" value="<user>" /> <add key="http_proxy.password" value="<password>" /> 

nuget.config文件中。