我有两个解决方案:SolutionA和SolutionB(在单独的存储库中)。两种解决方案都依赖于Package1,但是在SolutionA下的项目使用此程序包的1.0.0版本,但是在SolutionB下的项目使用2.0.0。
现在,需要打包和发布SolutionB中的库的NuGet程序包,该程序包将在SolutionA中的库中使用。
按预期,尝试此操作时会看到降级错误。因此,我决定将SolutionB中Package1的版本降级为1.0.0。代码仍然可以编译;在运行时没有不良的副作用。然后,我打包并发布,并尝试在SolutionA 编辑中重新使用:此时,我尝试通过完全卸载然后重新安装并直接在NuGet软件包管理器中直接降级来重新安装SolutionB NuGet软件包的最新版本( w / e叫做VS。
在这一点上,我仍然看到降级错误,理由是SolutionB依赖项正在利用更高版本,但实际上不再如此。为什么?
半!!
编辑:添加错误以供参考。我选择了Newtonsoft.Json进行演示。实际上,任何具有多个版本的NuGet软件包都易于复制
错误NU1605检测到软件包降级:版本11.0.2的Newtonsoft.Json 至9.0.1。直接从项目中引用包以选择一个 不同版本。 TestProjectA-> TestProjectB 1.0.0-> Newtonsoft.Json(> = 11.0.2)TestProjectA-> Newtonsoft.Json(> = 9.0.1)
TestProjectA的NuGet依赖项:
TestProjectB的NuGet依赖项:
答案 0 :(得分:2)
请确保在更改TestProjectB时,您增加了NuGet软件包的版本或清除了本地NuGet缓存(dotnet nuget locals all --clear
)。