ASP.NET Core 3.1 和 6.0 ServiceCollection 中存在多个依赖项冲突

Multiple dependencies conflict in ASP.NET Core 3.1 and 6.0 ServiceCollection exists in both

有什么方法可以查看 v6 引用的来源吗?我搜索了 6.0,检查了 nuget 包引用(所有 3.1.x)

我可以看到这个问题仅限于解决方案中的几个项目,但是 运行 没有想法要检查。

该项目通过 gitlab nuget 存储库使用一些基础项目,并且它自己构建 nuget 包以供再次使用(如果相关)。基础项目没有出现此问题(我已将 ServiceCollection 添加到每个项目,并且在按 F12 时全部解析为 3.1.15 版本)。

此项目中的 F12 解析为 v6.0:

但我不知道为什么或如何更改它。

正如预期的那样,在层次结构链中的某处引用了 .NET Core v6.0。但是,我没有找到它的简单方法。

找到一个有问题的项目,项目文件有两个部分,nuget 引用和项目设置。我注释掉了各个部分并重建了。是的,还有多个错误,因为 packages/projects 现在缺少他们的参考,但关键是我正在寻找上面的错误消失。罪魁祸首是我的基础项目之一,因此请使用基础解决方案继续调查。

虽然不需要,但我在项目中添加了一行代码ServiceCollection sc,并找出了哪一个导致了错误。我能够在几个项目中复制该错误并遵循相同的过程。我注释掉了项目文件中的各行,直到我消除了该错误。 (是的,还有很多很多错误,但缺席是关键。

原来是对AutoMapper Dependency Injection v11的引用,它对Options v6.0.0有依赖!

最好有一种方法来跟踪引用的来源,因为即使在主要项目中查看 AutoMapper 引用也没有显示它对 DI 部分的依赖性。

希望它对某人有所帮助并节省一些时间。