我发现NuGet从1.4版本开始允许代理设置配置。但是,我找不到任何命令行示例。
我正在尝试运行某些构建,但NuGet无法连接。
如何在命令行上配置代理设置?
http_proxy
和https_proxy
环境变量,以及你的系统代理设置
我发现NuGet从1.4版本开始允许代理设置配置。但是,我找不到任何命令行示例。
我正在尝试运行某些构建,但NuGet无法连接。
如何在命令行上配置代理设置?
http_proxy
和https_proxy
环境变量,以及你的系统代理设置
Answers:
这是我与使用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>
顺便说一句,这也解决了我与NuGet的问题,仅在我第一次在Visual Studio中访问程序包源时有效。
请注意,一些尝试过这种方法的人通过评论报告说,他们已经能够
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 +网络问题,还有其他有价值的评论。
xml <system.net> <defaultProxy useDefaultCredentials="true" enabled="true"> </defaultProxy> <settings> <ipv6 enabled="true"/> </settings> </system.net>
为我工作,它使用了系统代理设置。在WINDOWS 10上测试
万一您使用的是nuget的https版本(https://www.nuget.org),请注意,必须使用https设置值。
我可能是错的,但我认为它使用了IE的代理设置。
如果看到您需要登录,它将打开一个对话框,并要求您登录(即登录)。
请在这里查看此说明-> http://docs.nuget.org/docs/release-notes/nuget-1.5
对于使用VS2015的任何人:我遇到“需要407代理身份验证”错误,这破坏了我的构建。经过几个小时的调查,事实证明,MSBuild在尝试下载Nuget作为“ DownloadNuGet”目标的一部分时未发送凭据。解决方案是将以下XML添加到<configuration>
元素内部的C:\ Program Files(x86)\ MSBuild \ 14.0 \ Bin \ MSBuild.exe.config中:
<system.net>
<defaultProxy useDefaultCredentials="true">
</defaultProxy>
</system.net>
我的解决方案是包括
<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
文件中。
也许这可以帮助其他人。对于我来说,解决方案是在Visual Studio(2015/2017)上打开NuGet设置,然后添加一个新的Feed URL:http : //www.nuget.org/api/v2/。
我不必更改任何与代理相关的设置。
只是一小部分...
如果它只为您提供http_proxy设置,而不提供用户名和密码,则建议将代理设置放在项目本地nuget.config文件中,并将其提交给源代码管理。这样,所有团队成员都将获得相同的设置。
创建一个空的。\ 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的建议外,我还必须将以下Windows Azure内容传递网络url添加到我们的代理服务器的白名单中:
.msecnd.net
在我开发的Windows Server 2016 Standard上,我只需要打开Credential Manager控制面板并清除不再有效的Visual Studio缓存代理设置,然后重新启动Visual Studio。下次打开Nuget软件包管理器时,系统提示我输入代理凭据,这使我再次工作。
请参阅:https : //support.microsoft.com/en-us/help/4026814/windows-accessing-credential-manager