克隆网站项目 nuget 后恢复包但找不到引用 VS 2015

After clone of web site project nuget restores packages but references are not found VS 2015

我们已将遗留网站移动到 TFS 中的 git,并且只要项目被克隆,nugget 就会根据 package.config 恢复包,并将它们添加到包文件夹中。由于无法找到通过 nuget 还原添加的程序集,后续构建失败。

如果您执行 update-package -reinstall 并且项目构建成功。这是预期的行为还是我有设置问题?之前的 repo 已签入包以消除此问题,但我想避免这种情况。

Is this expected behavior or do I have a setup issue?

是的,这是 NuGet 的预期行为,所以不用担心这是设置问题。

NuGet Restore 仅恢复包目录(\packages 文件夹)中的文件,但不会恢复项目内的文件或以其他方式修改项目。例如,如果一个包在您的项目中添加了一些引用 DLL 或其他文件,如果您删除这些文件中的任何一个,则在恢复此包时将不会重新添加它们。这可能会导致您的项目在构建时无法找到缺少的依赖项。

此外,预期的结果是恢复包后引用应该可以正常使用,不会损坏。在这种情况下,我们将不需要花费额外的时间使用 update-package -reinstall 命令行来卸载和重新安装软件包。

因此使用 "Update-Package -reinstall" 命令强制将包引用和内容文件重新安装到项目中,以解决包恢复后损坏的那些引用。