我们已将旧网站移至TFS中的git,并且无论何时克隆项目,nugget都会根据package.config恢复软件包,并将它们添加到packages文件夹中。由于无法找到通过nuget恢复添加的程序集,后续构建失败。
如果您执行update-package -reinstall并且项目已成功构建。这是预期的行为还是我有设置问题?之前的回购已经签入了包以消除这个问题,但我想避免这样做。
答案 0 :(得分:5)
这是预期的行为还是我遇到了设置问题?
是的,这是NuGet的预期行为,所以不要担心这是一个设置问题。
NuGet Restore仅恢复packages目录(\ packages文件夹)中的文件,但不恢复项目中的文件或以其他方式修改项目。例如,如果包添加了一些引用DLL或者项目中的其他文件,如果删除任何这些文件,则在恢复此程序包时不会重新添加它们。这可能导致您的项目在构建时无法找到缺少的依赖项。
此外,预期的结果是应该正常使用引用而不会在恢复包之后破坏。在这种情况下,我们不需要花费额外的时间使用update-package -reinstall命令行来卸载和重新安装软件包。
所以使用" Update-Package -reinstall"命令强制将包引用和内容文件重新安装到项目中,以便解析包恢复后损坏的引用。