我正在尝试在工作中使用VS2010中的Nuget。但是,当我尝试从官方源下载packages时,总是出现403错误。
我已经了解到Nuget将使用与IE相同的代理设置,这对我来说很不幸,因为我的IE被锁定了,我无法更改代理设置。
我已经修改了获取feedservice url的URL,在IE中会出现错误,在Firefox(使用本地proxy.pac)中,URL可以正确解析,我可以看到feeds。
是否有任何方式手动配置Nuget而不使用IE的设置呢?
我正在尝试在工作中使用VS2010中的Nuget。但是,当我尝试从官方源下载packages时,总是出现403错误。
我已经了解到Nuget将使用与IE相同的代理设置,这对我来说很不幸,因为我的IE被锁定了,我无法更改代理设置。
我已经修改了获取feedservice url的URL,在IE中会出现错误,在Firefox(使用本地proxy.pac)中,URL可以正确解析,我可以看到feeds。
是否有任何方式手动配置Nuget而不使用IE的设置呢?
如果您无法将异常添加到代理中,或者只是想要一个立即可用的解决方案,则可以编辑位于Visual Studio安装目录下(例如 - C:\Program Files(x86)\Microsoft Visual Studio 10.0\Common7\IDE
)的Visual Studio配置文件(devenv.exe.config),并将<system.net>
配置部分更改/添加为以下内容,这样将允许Visual Studio与代理一起使用:
<system.net>
<defaultProxy useDefaultCredentials="true" enabled="true">
<proxy proxyaddress="http://<Insert proxy address here>" />
</defaultProxy>
<settings>
<servicePointManager expect100Continue="false" />
<ipv6 enabled="true" />
</settings>
</system.net>
你所需要做的就是将<Insert proxy address here>
更改为你公司的代理地址。另外,根据你的代理设置,你可能可以使用Expect100Continue消息,并且可能不需要更改该配置元素。你可以在这里找到更多信息。
以下内容来自我最近回答的相关问题。
我是这样解决我的企业代理使用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配置中存储的密码,如果您的代理凭据也是您的网络凭据。
如果您不知道代理设置,而NuGet正在要求代理用户和密码,您可以尝试在Visual Studio安装目录下的devenv.exe.config
文件中添加以下内容,在<system.net>
标签之间:
<defaultProxy useDefaultCredentials="true" enabled="true">
<proxy usesystemdefault="True"/>
</defaultProxy>
<system.net>
<defaultProxy useDefaultCredentials="true" enabled="true">
<proxy usesystemdefault="True"/>
</defaultProxy>
<settings>
<ipv6 enabled="true" />
</settings>
</system.net>
甚至不需要提供代理地址,它对我起作用了 :) 实际上这应该是默认行为,我浪费了很多时间来克服这个问题...
我在使用Nuget控制台访问Nuget网站时遇到了问题。 "从传输流中收到意外的EOF或0字节。" 最终发现是代理问题,因为我的工作代理是“隐形”的,没有配置选项。我通过以下步骤解决了我的问题。
这可能有助于解决以下问题:
我希望这可以帮助到你。