代理后面的NuGet

问题描述:

我发现NuGet允许从1.4版本开始进行代理设置配置。但是,我找不到任何命令行示例。代理后面的NuGet

我想运行一些构建和NuGet无法连接。

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

+1

为了其他用户遇到代理问题的好处:如果NuGet显示消息:“远程名称无法解析:'nuget.org'”,您将会知道它可能是代理“” – pduncan 2013-07-24 17:28:25

+3

小心检查“ http_proxy'和'https_proxy'环境变量以及您的系统代理设置 – 2015-07-22 15:53:27

+0

github上存在一个问题: https://github.com/NuGet/Home/issues/458 – thekip 2015-08-11 20:39:51

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

如果看到您需要登录,会打开一个对话框,并要求您这样做(即登录)。

请在这里看到这样的说明 - >http://docs.nuget.org/docs/release-notes/nuget-1.5

+0

它的确如此 - 这种方法的问题当您的公司的组策略不断将您的IE设置恢复为不适用于Nuget的那些设备时,就像在我的工作地点 – Xcalibur 2016-11-07 04:50:41

也许你可以试着给你的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 tracker

有也是关于NuGet +网络问题的其他有价值的评论。

+2

中发生的那样,但是这里假设安装了devenve.exe(它是Visual Studio),它不应该在构建服务器 – 2014-08-01 20:47:23

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

以下是我为使用NTLM身份验证的公司代理所做的工作。我下载NuGet.exe,然后运行下面的命令(这是我在评论中发现this discussion 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 

这把在位于%appdata%\NuGet(映射到ç我NuGet.config如下:\用户\ MyUserName输入\应用程序数据\我的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> 

顺便说一句,这也是固定我的问题与只的NuGet工作我第一次打了包源在Visual梭哈IO。

注意一些谁也尝试过这种方法已经通过的意见,他们已经能够省略命令行设置http_proxy.password键,或后的,其实从配置文件中删除的报道,并且仍然能够通过代理实现NuGet功能。

如果找到,但是,你必须指定的的NuGet配置文件密码,请记住,你必须在命令行更新中的NuGet配置存储的密​​码,当您更改网络登录,如果您的代理凭证也是您的网络凭证

+0

NuGet命令行未将条目添加到我的NuGet.con无花果文件,但一旦我手动编辑文件,它的工作很好。 – pduncan 2013-07-24 17:25:14

+0

它工作完美,谢谢你救了我! – Juan 2014-02-24 10:14:58

+10

在我的情况下,我完全省略了** http_proxy.password **键,似乎很高兴通过我的身份验证AD凭据。这节省了经常更改密码的必要性。 – 2014-06-18 09:59:39

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

  • https_proxy
  • https_proxy。用户
  • https_proxy.password
+1

如果您遵循arcains指南,但使用https – dmce 2014-05-30 13:18:41

+0

,则https密码在nuget.config中为纯文本,而不是necro,但这完全解决了我的问题。谢谢! – Bcbury 2015-09-09 20:21:29

+0

这解决了我的问题,更多细节在这里https://github.com/NuGet/Home/issues/5980。 – jpierson 2017-10-09 18:31:57

从@arcain我有以下的Windows Azure内容交付网络的网址添加到我们的代理服务器的建议

Apart的白名单:

.msecnd.net 

另一番风味对于相同的“代理对的NuGet”:或者你可以设置你的NuGet代理方式的设置,通过fiddler连接。下面CMD将在默认的NuGet配置文件保存代理服务器设置为用户的%APPDATA%\的NuGet \ NuGet.Config

的NuGet配置 - 设置HTTP_PROXY = http://127.0.0.1:8888

每当你需要的NuGet伸手互联网,只是打开Fiddler,asumming你有小提琴手监听默认端口8888

这个配置上不是passwork的变化很敏感,因为小提琴手将解决与为你流代理的任何认证。

只是一个小除了...

如果你的作品只提供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文件。

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

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

非常好,为我工作,很好很简单,谢谢。 – DaveInCaz 2017-05-01 15:14:12

以上内容由@arcain加上下面的步骤解决方案我的问题

  1. 修改下NuGet包管理器设置的“包源”,以检查 复选框使用nuget.org设置解决了我的问题。

  2. 我也改为使用(nuget.org)作为包源
    的第一选择我并取消我公司包的来源,以确保在的NuGet总是挑 环球资源了。

对我来说,解决方案是包含

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

nuget.config文件。

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

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