NuGet "收集依赖项" 卡住了

58

当我添加一个NuGet包(使用最新版本的NuGet和Visual Studio 2015)时,它会在“尝试收集依赖项”处挂起约5分钟,然后才安装该包。我可以指向NuGet.org、我们的内部服务器或本地机器上的文件夹,它们都表现得完全相同。


对我来说,只是花了一些时间。请尝试使用“-Verbosity detailed”标志以查看命令挂起的位置。 - feupeu
6个回答

81

经过一番搜寻(在发帖前我遇到了很长时间的此问题),我找到了问题所在。我的NuGet包源列表中有一个已经失效了。如果我将其从列表中移除,一切就会顺利进行。如果保留该源,即使我的packages.config文件中没有与该源相关的任何包,它也会变得缓慢。


7
半相关:在网络连接差的情况下也会出现这种情况。我等了几分钟,最终它通过了。如果读者只有官方Nuget仓库,这可能对他们有用。 - Rob
在我的情况下,其他软件包源并没有真正关闭,因为它仍然可以响应。但是,关闭除nuget.org之外的所有源对我来说解决了问题。 - Paweł Forys
1
我们为客户运行一个内部NuGet服务器,该服务器位于VPN后面。我忘记打开VPN了。当我打开VPN时,软件包就可以正常下载了(即使它来自官方NuGet服务器,与我们的内部服务器无关)。 - HenricF

43

我曾经也遇到了同样的问题,而我读到的大部分建议都是更新nuget VS扩展(我使用的是VS包管理器控制台)或重新启动VS,但这些方法都没有奏效...

我的设置(故障发生时):

  • VS 2015 Pro Update 2
  • Package Manager Console Host Version 3.4.3.855

最终对我有效的解决方案:

  1. 关闭已打开的VS。
  2. 删除 %AppData%\NuGet\NuGet.Config 文件。
  3. 打开VS和包管理器控制台(这将重新创建Nuget.config文件)。

这将更新我的nuget.org源,不再指向 www.nuget.org/api/v2(见下图)

New nuget.org feed

  1. 我的Microsoft和.NET源也被选中了,我还必须取消选择它: enter image description here

在此之后,安装软件包就不会再卡在‘Attempting to gather dependency information for package...’了。

感谢https://dev59.com/ClwY5IYBdhLWcg3wq5bk#36461793提出删除nuget.config的想法。


哇!这让我疯狂了两个小时。谢谢你,伙计! - fabriciorissetto
太棒了!!!这真的很痛苦。移除Nuget v2 feeds是关键。 - Seb T.

2
今天早上,我们所有的构建都开始失败了。经过一番探究,我们发现它在解析依赖关系时卡在了https://www.nuget.org/api/v2。进一步调查发现,它正在连接和下载,但似乎陷入了一个循环中。每次我们取消构建时,它都会在后台留下一个Nuget.exe运行 - CPU变得很热。
事实证明,nuget.org昨晚(2016年1月13日)升级了他们的服务器,而我们的构建所运行的Nuget.exe版本(2.7.2)无法正常工作。
解决方法(至少对我们来说)是升级到2.8.6版本(https://dist.nuget.org/win-x86-commandline/v2.8.6/nuget.exe)。我知道这并不是最新版本,但对我们有效。等烟消云散之后我们会进行升级!

0
对我来说,它一直是错误配置代理的问题。当错误提示为:“正在收集依赖项……”时,通常是在尝试下载某个软件包。
如果所有的NuGet配置都正确,请检查系统代理设置。

0
  1. 请前往 Windows 用户机器上 Nuget.config 的位置:%appdata%\NuGet。
  2. 在这里,您可以删除不正确的软件包位置/链接的密钥。
  3. 现在尝试在 SHELL 中使用相同的命令下载软件包。

0

我的问题是Nuget Packages文件夹不存在。我已经将本地文件夹名称从“packages”改为“NugetPackages”。检查csproj文件的内容值得一试。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接