.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 包中降级它VS
中的经理(w/e 它被称为..)
此时,我仍然看到一个降级错误,指出 SolutionB 依赖项正在利用更高版本,但实际上,它不再是了。为什么?
哈尔普!!
编辑:添加错误以供参考。我选择了Newtonsoft.Json来演示。这很容易重现,实际上,任何具有多个版本的 NuGet 包
Error NU1605 Detected package downgrade: Newtonsoft.Json from 11.0.2
to 9.0.1. Reference the package directly from the project to select a
different version. 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
)。
我有两个解决方案:SolutionA 和 SolutionB(在不同的存储库中)。两种解决方案都依赖于 Package1,但 SolutionA 下的项目利用此包的 1.0.0 版本,但 SolutionB 下的项目利用 2.0.0.
现在需要打包发布一个SolutionB中的库的NuGet包,在SolutionA中的库中使用。
不出所料,我在尝试此操作时看到了降级错误。所以,我决定将SolutionB中Package1的版本降级到1.0.0版本。代码仍然可以编译;在 运行 时间内没有不良副作用。然后,我打包并发布并尝试在 SolutionA 中重新使用 编辑:此时,我尝试重新安装最新版本的 SolutionB NuGet 包,方法是完全卸载它然后重新安装并直接在 NuGet 包中降级它VS
中的经理(w/e 它被称为..)此时,我仍然看到一个降级错误,指出 SolutionB 依赖项正在利用更高版本,但实际上,它不再是了。为什么?
哈尔普!!
编辑:添加错误以供参考。我选择了Newtonsoft.Json来演示。这很容易重现,实际上,任何具有多个版本的 NuGet 包
Error NU1605 Detected package downgrade: Newtonsoft.Json from 11.0.2 to 9.0.1. Reference the package directly from the project to select a different version. 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
)。