我在一台计算机上 checkin 了一个项目,在另一台计算机上 checkout 了项目,发现 NuGet 安装的二进制文件丢失了。我也可以将它们 checkin 源代码管理,但看起来有更好的解决方案:
http://docs.nuget.org/docs/workflows/using-nuget-without-committing-packages
我按照这些说明操作,现在有一个 .nuget
文件夹,该文件夹在我的 .csproj 文件中包含以下条目:
<RestorePackages>true</RestorePackages>
<Import Project="$(SolutionDir)\.nuget\nuget.targets" />
但是当我重建我的解决方案时,丢失的包没有恢复。
我错过了什么?我该如何诊断这个问题?
最佳答案
请注意,您可以通过在 nuget 包管理器控制台中运行以下命令来强制执行包恢复
Update-Package -Reinstall
强制重新安装解决方案中的所有内容。
<小时/>Update-Package -Reinstall -ProjectName myProj
强制重新安装 myProj 项目中的所有内容。
注意:这是核选项。使用此命令时,您可能无法获得已安装的软件包的相同版本,这可能会导致问题。与解决方案级别相比,这种情况不太可能发生在项目级别。
您可以使用 -safe
命令行参数选项来限制升级到具有相同主要和次要版本组件的新版本。这个选项是后来添加的,解决了评论中提到的一些问题。
Update-Package -Reinstall -Safe
关于NuGet 包恢复不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9011889/