恢复Nuget引用?
我在Visual Studio 2012中有解决方案和项目。
该项目的根目录中有一个文件packages.config
。
出于这个问题的目的,我们假设我不小心从我的项目的References
部分中删除了这些库。
当进入NuGet软件包管理器时,界面仍在报告这些软件包旁边的勾号,表示它们已安装。
我可以看到如何解决这种情况的唯一方法是从packages.config
删除所有条目,这将修复NuGet接口将其报告为已安装的问题,并重新添加每个条目。
有更聪明的方法吗? 我曾希望启用'启用nuget恢复丢失的软件包'会解决这个问题,但它似乎没有做任何事情。
尝试重新安装软件包。
在NuGet程序包管理器控制台中输入以下命令:
Update-Package -Reinstall -ProjectName Your.Project.Name
如果要重新安装软件包并为整个解决方案恢复引用,请省略-ProjectName
参数。
您需要在VS解决方案级别启用NuGet软件包恢复功能,以使缺失恢复软件包正常工作。
如果这有助于某人,对我而言,上述都不够。 我仍然无法构建,VS仍然无法找到参考。 关键是在恢复软件包后关闭并重新打开解决方案 。
这里是场景(使用Visual Studio 2012):
您打开一个缺少软件包的解决方案。 参考资料显示VS无法找到它们。 有很多方法可以恢复丢失的软件包,其中包括
nuget restore
但不管采用哪种方法,这些参考文献仍然会显示为缺失。 而当你建立它会失败。 叹。 但是,如果关闭解决方案并重新打开它,现在VS会再次检查这些不错的<HintPath>
,发现这些软件包已返回到它们所属的位置,并且与全世界都一样。
更新
Visual Studio仍然没有看到你有包吗? 仍然显示它无法解决的参考? 确保您恢复的软件包版本与.csproj文件中的<HintPath>
完全相同。 即使是小错误修复号码(例如1.10.1至1.10.2)也会导致参考失败。 你可以通过直接编辑你的csproj xml来解决这个问题,或者通过删除引用并且在软件目录中新建一个指向新还原版本的引用来解决这个问题。