一些NuGet包在Visual Studio应用程序的解决方案中缺失。

7

在拉取了一些代码更新后,我发现在构建时出现了这个消息。

Some NuGet packages are missing from the solution. 
The packages need to be restored in order to build the dependency graph. 
Restore the packages before performing any operations

在解决方案资源管理器中,引用链接显示为缺失引用图标。
我删除了这些引用。然后,在程序包管理器控制台上出现了一个按钮,询问我是否要安装缺失的软件包。然而,这并没有起作用。

1
右键解决方案,还原Nuget包。 - Zein Makki
在 NuGet 命令行中只需键入 restore 即可? - Fang
糟糕,我刚才右击了项目。当我右击解决方案时才会出现这个选项。 - Kirsten
此时构建sln文件将自动恢复缺失的项目,无需手动干预。请参考David Ebbo的博客文章“正确恢复NuGet包的方法”http://blog.davidebbo.com/2014/01/the-right-way-to-restore-nuget-packages.html。 - timB33
5个回答

19
我写下这篇答案是因为我尝试了以下解决方案,但都没有奏效:
  1. 清除缓存
  2. 恢复或重新安装包
  3. 更改目标框架
  4. 更新Nuget包管理器
然后我看了下一个下拉列表,发现错误很微小。包源离线了! 我在我的系统上安装了VS2017专业版并打开了一个现有项目,发现有多个包丢失。我尝试了所有我所能想到的方法,但没有注意到包源!

Manage Nuget Packages for Solution


解决方案:

步骤01. 前往包管理器设置(工具 > Nuget 包管理器 > 包管理器设置) Nuget Package Manager > Package Manager Settings

步骤02. 检查包源。如您所见,包源已下载 SDK/nugets/packages。我不知道原因,但 nuget.org 的在线包源在我的 Visual Studio 系统安装中缺失。

enter image description here

步骤03. 安装nuget.org作为包源,然后“清除所有Nuget缓存”,最后还原包。错误将消失。

名称:nuget.org(或您希望的名称) 源:https://api.nuget.org/v3/index.json

enter image description here


3
我和你遇到了完全相同的问题。对于这一切都很新,试了半天那些其他的解决方案都没有用,直到我找到了你的解决方案。 - Richard Ding
1
直戳要点,最有效!非常感谢! - Subrata Sarkar
请记住,您可以使用加号+来添加内容,然后选择并编辑名称和来源。 - dcarl661

7
当我尝试在解决方案之外打开项目并构建它时,收到了以下消息:

一个或多个 NuGet 包需要恢复,但由于未获得许可而无法执行。若要给予许可,请打开 Visual Studio 选项对话框,单击“程序包管理器”节点并选中“允许 NuGet 在构建期间下载缺少的包”。您还可以通过将环境变量“EnableNuGetPackageRestore”设置为“true”来给予许可。

我给了 VS 许可,然后在程序包管理器控制台中运行了以下命令:
update-package -Reinstall  

1
感谢您分享您的答案。请标记您的答案,这将有益于其他遇到相同问题的社区。 - Weiwei

1
可能在第一次下载时,文件夹/压缩包内容出现错误,因此请前往Xamarin文件夹(C:/User/YourName/AppData/Local/Xamarin),删除、重命名或移动丢失的NuGet文件夹或压缩包内容文件夹。

重启IDE,您的IDE会重新下载内容。我尝试过这个方法,它有效。


我没有使用Xamarin。 - Kirsten

1

点击 Ctrl+Q 并输入缺少的包的名称,然后点击搜索匹配在线 NuGet 包。 它会显示一个菜单,点击浏览会给你所缺少的包,点击安装、卸载或更新。 enter image description here


0
如果您在某个服务器上遇到这个问题,可能是该服务器无法连接到互联网。
如果您想解决丢失还原错误,可以取消选择此选项。
或者您需要启用该服务器访问互联网的权限。

enter image description here


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