繁体   English   中英

.NET — 管理不同版本的 NuGet 包的公共依赖项

[英].NET — Managing NuGet packages’ common dependencies with different versions

我有两个解决方案:SolutionA 和 SolutionB(在不同的存储库中)。 两种解决方案都依赖于 Package1,但 SolutionA 下的项目利用此包的 1.0.0 版,而 SolutionB 下的项目利用 2.0.0。

现在,需要在 SolutionB 中打包并发布库的 NuGet 包,该包将在 SolutionA 中的库中使用。

正如预期的那样,我在尝试此操作时看到了降级错误。 所以,我决定将SolutionB 中Package1 的版本降级到1.0.0 版。 代码仍然可以编译; 在运行时没有不良副作用。 然后,我打包并发布并尝试在 SolutionA编辑中重新使用:此时,我尝试重新安装最新版本的 SolutionB NuGet 包,方法是将其完全卸载,然后重新安装,然后直接在 NuGet 包管理器中将其降级(w/e它被称为..) 在 VS 中

在这一点上,我仍然看到降级错误,理由是 SolutionB 依赖项正在利用更高版本,但实际上,它不再是了。 为什么?

呸!!

编辑:添加错误以供参考。 我选择了 Newtonsoft.Json 来演示。 这很容易复制,实际上,任何具有多个版本的 NuGet 包

错误 NU1605 检测到包降级:Newtonsoft.Json 从 11.0.2 到 9.0.1。 直接从项目中引用包以选择不同的版本。 TestProjectA -> TestProjectB 1.0.0 -> Newtonsoft.Json (>= 11.0.2) TestProjectA -> Newtonsoft.Json (>= 9.0.1)

TestProjectA 的 NuGet 依赖项:

在此处输入图片说明

TestProjectB 的 NuGet 依赖项:

在此处输入图片说明

确保在更改 TestProjectB 时,增加 NuGet 包版本或清除本地 NuGet 缓存( dotnet nuget locals all --clear )。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM