缺少 NuGet 包,但“包已安装”

6

我看到很多人在网上提到了这个问题,并尝试了各种方法来解决这个问题,但什么都没用。我将我的Visual Studio解决方案复制到计算机的另一个位置,现在当我尝试构建它时,我会遇到臭名昭著的...

该项目引用了此计算机上缺失的NuGet包。使用NuGet Package Restore下载它们。有关更多信息,请参见http://go.microsoft.com/fwlink/?LinkID=322105

当然,我已经启用了包恢复,尝试手动恢复它们(在这种情况下,我会收到一条消息,指出“所有包都已安装,没有需要恢复的内容”),我尝试删除所有包,然后让项目恢复它们,我读了很多有关.csproj文件可能是问题的文章,那是不是真的?如果是,我该如何访问这个文件?似乎非常基础,但由于某种原因我在我的解决方案中找不到它。


新电脑是否安装了最新版本的NuGet?此外,.csproj文件格式在多年间发生了一些变化,因此了解项目是在哪个版本的Visual Studio中创建的以及它是.NET Core、.NET Standard还是.NET Framework可能会有所帮助。 - Joe White
这个问题有任何更新吗?您解决了这个问题吗?如果没有,能否请您告诉我关于这个问题的最新信息? - Leo Liu
是的,我最终没有弄清楚为什么会发生这种情况,但我决定再次将我的解决方案复制到另一个位置进行尝试,第二次它就正常工作了。由于现在它正常工作,所以我不会进一步探究出了什么问题。 - Casey Daly
2个回答

3

这个帖子已经很久了,但是对于回来的人。 确保删除bin和object文件夹并重新构建项目。


1
我已经删除了“bin”文件夹,但问题仍然存在。在删除“obj”文件夹后,问题消失了。原来,“obj”包含了一些NuGet相关的文件,这些文件引用了一个旧版本的包,而该项目不再引用该包。遗憾的是,“清理解决方案”或“重新生成解决方案”对由NuGet创建的文件没有影响。 - HyperQuantum

2

缺少NuGet包,但“已安装的包”

NuGet在恢复时会检查解决方案中的packages目录。

它会检查该packages目录是否包含NuGet包的.nupkg和清单文件,如果是,则认为NuGet包已经在本地安装。

因此,要解决“缺少NuGet包,但已安装的包”的问题,您可以尝试以下故障排除:

  1. 确保您没有将\packages文件夹添加到源代码控制中,例如TFS。如果是,请尝试将其从源代码控制中删除。

  2. 确保您没有更改.csproj文件的位置。如果是,请编辑.csproj文件并更正相对路径以指向解决方案文件夹。

  3. 从packages目录中删除包文件夹及其内容,然后重试。

如果以上方法都不起作用,请尝试与我们分享还原日志,我会检查并更新我的答案。

希望这有所帮助。


我删掉了\packages文件夹。成功地恢复了所有NuGet包,没有明显的依赖问题。我卸载了所有项目并检查了所有路径(都是相对路径)。该解决方案在开始开发的机器上构建时没有任何问题。但是,任何从Azure DevOps克隆解决方案到不同机器的人都无法构建。所有项目都报告:此项目引用了缺少于此计算机上的NuGet包... 即使成功执行了Nuget-packages-restore。我们已经到了将其从Azure中删除并移动到USB存储器的程度了。 - Doug Kimzey

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