首页 > 解决方案 > Nuget 不会从源代码管理中恢复包

问题描述

我们正在迁移所有项目以使用 nuget 引用。连同源代码控制(在我们的例子中是 DevOps 和 Git),我注意到 nuget 包管理器的一个奇怪行为。

当我们签入带有 nuget 引用的项目时,其他同事(签出此项目的)会在项目中遇到引用错误。我分析它并注意到,在分支的工作版本中,nugetpackages 的 dll 不包括在内。package.config 对我来说看起来不错。

我的问题是:我们是否需要将包 dll 从 nuget 签入到源代码管理?据我了解,nuget 应该检查是否下载了包/程序集,如果没有,应该重新下载它们。

在 nuget 包管理器下的 visualstudio ->“允许 NuGet 下载丢失的包”和“在 Visual Studio 中构建期间自动检查丢失的包”这两个选项都被选中(在所有客户端上)。

我还仅使用 packages.config 签入了一个项目 - 没有 packages 文件夹。但是引用没有像以前那样被识别/在项目的加载/构建中没有发生自动恢复。

标签: visual-studionugetnuget-package-restore

解决方案


我解决了从 packages.config 切换到 packagereferences 的错误。在构建/重建事件中,所有 DLL 现在都从 nuget 源中提取,如果它们不存在的话。

请参阅此博文以获取参考https://devblogs.microsoft.com/nuget/migrate-packages-config-to-package-reference/


推荐阅读