访问公司代理后面的Nuget官方软件包源代码

Mik*_*ons 16 visual-studio-2010 nuget

我正在尝试在VS2010中使用Nuget.当我尝试从官方订阅源下载软件包时,它总是以403失败.

我已经读过Nuget将使用与IE相同的代理设置,这对我来说是不幸的,因为我的IE被锁定了.我无法更改代理.

我已经摆弄了被反弹的feedservice网址,在IE中我得到一个错误,在Firefox中(定义了本地proxy.pac)网址解析得很好,我可以看到提要.

有没有办法手动配置Nuget不使用IE的设置?

Xca*_*bur 24

如果您无法将异常添加到代理中,或者只是想立即解决方案,那么请编辑位于Visual Studio安装目录中的Visual Studio配置文件(devenv.exe.config)(例如 - C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE)并更改/添加<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>
Run Code Online (Sandbox Code Playgroud)

您需要做的就是将<Insert proxy address here> 更改为您公司的代理地址.此外,根据您的代理设置,您可以使用Expect100Continue消息,可能不需要更改该配置元素.您可以在此处找到更多信息

  • 只是为了补充一点,.config文件可能需要作为管理员进行编辑,因为Program Files目录比以前更受保护. (4认同)

arc*_*ain 15

以下是我最近回答的一个相关问题.

以下是我使用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
Run Code Online (Sandbox Code Playgroud)

这将以下内容放在我的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>
Run Code Online (Sandbox Code Playgroud)

顺便说一句,这也解决了我的问题,NuGet只在我第一次点击Visual Studio中的包源时工作.

请注意,尝试过这种方法的一些人通过对我的其他答案的评论报告说他们已经能够省略http_proxy.password从命令行设置密钥,或者从配置文件中删除它后仍然能够在代理上拥有NuGet功能.

但是,如果您发现必须在NuGet配置文件中指定密码,请记住,如果您的代理凭据也是您的网络,则必须在更改网络登录时从命令行更新NuGet配置中存储的密码凭证.