【问题标题】:After clone of web site project nuget restores packages but references are not found VS 2015克隆网站项目 nuget 后还原包但未找到引用 VS 2015
【发布时间】:2017-04-03 20:33:07
【问题描述】:
我们已将旧网站移至 TFS 中的 git,并且只要项目被克隆,nugget 就会根据 package.config 恢复包,并将它们添加到包文件夹中。由于无法找到通过 nuget restore 添加的程序集,后续构建失败。
如果您执行 update-package -reinstall 并且项目构建成功。这是预期的行为还是我有设置问题?以前的 repo 已签入包以消除此问题,但我想避免这种情况。
【问题讨论】:
标签:
c#
visual-studio-2015
nuget
nuget-package-restore
【解决方案1】:
这是预期行为还是我有设置问题?
是的,这是 NuGet 的预期行为,所以不用担心这是设置问题。
NuGet Restore 仅恢复包目录(\packages 文件夹)中的文件,但不会恢复项目中的文件或以其他方式修改项目。例如,如果包添加了一些参考 DLL或您项目中的其他文件,如果您删除这些文件中的任何一个,恢复此包时将不会重新添加它们。这可能会导致您的项目在构建时无法找到缺少的依赖项。
此外,预期的结果是在恢复包后引用应该可以正常使用而不会损坏。在这种情况下,我们不需要花费额外的时间使用 update-package -reinstall 命令行来卸载和重新安装包。
因此使用“Update-Package -reinstall”命令强制将包引用和内容文件重新安装到项目中,以解决那些在包恢复后损坏的引用。