使用NuGet软件包管理器控制台时无法访问源


153

我们正在将包管理从手动更新文件转移到NuGet。我正在尝试安装较旧版本的软件包,以匹配我们在源代码管理中已经拥有的版本。无法从用户界面执行此操作,因此我使用命令行来获取正确的版本。

出于某种原因,请Install-Package继续告诉我nuget gallery无法访问。

nuget.org [ https://www.nuget.org/api/v2/]上的源不可访问。退回到NuGet本地缓存

这仅在我们的一种解决方案中发生。如果我创建一个新解决方案或在同一存储库中使用另一个解决方案,则程序包将按预期安装。我什至可以将软件包安装在虚拟解决方案中,以填充本地缓存,然后将它们成功安装在故障解决方案中。我尝试Invoke-WebRequest从NuGet控制台访问url,并获得HTTP 200。

是什么原因造成的?有没有一种方法可以按每个解决方案/项目覆盖程序包源?


3
我遇到同样的问题。我昨天安装了VS 2013 Update 2,也许这是一个新错误...?顺便说一句,我可以通过“管理NuGet程序包”对话框安装任何程序包,而不会出现问题,此问题仅在程序包管理器控制台上发生。
rsenna 2014年

2
我有同样的问题。始终在“管理软件包”对话框中工作-从未在Package Manager控制台中工作。
David Tansey 2014年

10
重新启动Visual Studio的解决了这个问题对我来说ಠ_ಠ
克里斯Marisic

Answers:


338

即使我的软件包源在软件包管理器控制台中设置为nuget.org,也显式添加了-Source nuget.org为我解决的参数。

因此,使用示例如下:

Install-Package Akka.net -Source nuget.org

Akka.net是您要安装的软件包,此处仅是一个示例。


1
我重新启动了PC和Visual Studio。但是..添加-Source nuget.org确实对我现有的多项目.sln中的新.vbproj实例
起到了作用

在何处添加此参数以及如何添加?您能否提供更多信息。
Radenko Zec 2015年

它也对我有用(实际上,现在!)。我正在尝试安装旧版本的jQuery,但它不断引发错误:“ nuget.org [ nuget.org/api/v2/]的源代码”。我不知道如何解决它。
Loudenvier

谢谢,我这样做了:Install-Package jQuery.UI.Combined -Source nuget.org
shaijut 2015年

7
你有什么想法吗?我只是好奇,因为即使可行,这对我来说也没有任何意义。所以错误说nuget.org [ nuget.org/api/v2/]上的源不可用,然后我指定了相同的-Source nuget.org并且可以正常工作吗?
Vladimirs

10

我必须在Visual Studio的选项中复制默认的NuGet源。使用复制的源,我将URL从更改httpshttp。这为我解决了问题。

此建议的功劳归于此处:https : //nuget.codeplex.com/discussions/561075#PostDetailsCell_1354351,为“ jpharris4”。


这是非常好的一点。NuGet可能对证书验证敏感。
Etienne Maheu 2015年

6

我不确定是什么导致了您的问题,但是确实有一种方法可以基于每个解决方案覆盖程序包源,但前提是您已在给定的解决方案上启用了NuGet程序包还原

解决方案启用了NuGet软件包还原后,就会将名为“ .nuget”的文件夹添加到解决方案中。在该文件下将有一个名为“ NuGet.targets”的文件,该文件的ItemGroup的条件为“'$(PackageSources)'==”“,就像您在所附图像中看到的一样。

如果ItemGroup为空(或完全注释掉,如图所示),则解决方案将使用特定的文件,该文件与“工具>>选项”下列出的源相同。但是,如果取消注释或将P​​ackageSource项目添加到该ItemGroup,则解决方案将搜索列出的包源,并且仅搜索列出的包源。

Nuget.targets文件的内容


2
NuGet.targets文件中定义的软件包源仅影响还原软件包时在构建过程中使用的软件包源。.nu​​get目录中NuGet.config文件中的程序包源将影响Visual Studio中项目可用的程序包源。
马特·沃德

我确实为此解决方案启用了软件包还原。ItemGroup的配置与您的屏幕快照中的配置相同,我认为这是默认设置,因此我认为这不是问题。但是,很久以前就已启用软件包还原,此后更改了目标文件。我试着通过删除这些文件并重新启用程序包还原来将这些文件更新为最新版本,看来它解决了问题。
Etienne Maheu 2014年

或不。起初它起作用,但是在为解决方案还原软件包并重新启动Visual Studio之后,问题又回来了。
Etienne Maheu 2014年

一些澄清的问题:1)在packages.config中是否引用了正确的版本?2)您是否已确认要查找的版本仍在NuGet服务器上?3)完成步骤1)和2)之后,您是否清洁过溶液并重新构建了溶液?
全能主义者2014年

1
如果可以的话,我会收到此问题,但仅在我的工作PC上,并且在大多数项目中都会发生。奇怪的是,它的间歇性使我发疯!
马特

6

您也可以从UI更改NuGet源。只需将NuGet源更改为旧版本,它就可以正常工作。

在此处输入图片说明

VS 2015中似乎仍然很少有与api.nuget.org(v3)相关的错误。


2

在我的Package Manager控制台中,我看不到任何来源

转到: 工具->选项-> Nuget软件包管理器->软件包源

我找到了来源。取消选中它们,然后又选中它们使它们重新出现在我的Package Manager控制台中


2

我必须提供comman以及完整的URL作为 Install-Package MySql.Data.Entity -Version 6.9.8 -Source http://www.nuget.org/api/v2


1

就我而言,原因是包裹中有协议。通过用户界面-“管理NuGet软件包”对话框,您可以选择接受并继续。

VS 2013中的Package Manager控制台似乎与此有关。正如其他人所说,重新启动VS 2013可能会为控制台解决。


1

这在VS 2015教授中为我工作:工具->选项-> Nuget软件包管理器->软件包源

  1. 按添加按钮
  2. 在名称标签中编辑:nuget.org
  3. 在源标签中编辑:https : //www.nuget.org/api/v2/
  4. 按确定

希望能帮助到你 ;)


对于VS 2015,您应该使用其列表中的v3 ...而不是v2!从其主页上获取NuGet feed v3(VS 2015 / NuGet v3.x):api.nuget.org/v3/index.json NuGet feed v2(VS 2013及更早版本/ NuGet 2.x):nuget.org/api/v2
Paul Zahra

0

我在同一条消息中遇到了同样的问题。但是我的问题的原因是失去了与TFS的连接。我的TFS服务器托管在其他网络中,我使用VPN对其进行访问。当我尝试在未建立与TFS的连接的情况下安装软件包时(VPN已关闭),我遇到了同样的问题。

请注意此TFS行为。



0

我遇到了VS2013这个问题,浪费了3个小时的时间。

不能确定问题的原因是什么。但是以上解决方案均不适合我。

重新安装Nuget Package Manager控制台对我有用。

在“工具”->“扩展和更新”->“所有”下,找到适用于Visual Studio的Nuget软件包管理器,然后单击“卸载”。

转到https://marketplace.visualstudio.com/items?itemName=NuGetTeam.NuGetPackageManagerforVisualStudio2013并下载扩展程序。


0

在此处输入图片描述可能是您的办公室/家庭防火墙阻止了nuget.org,因此尝试连接不同的Internet网络,例如通过您的手机或wifi。我能够通过此方法解决。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.