与 Nuget 包引用冲突

发布于 2025-01-12 05:39:09 字数 1452 浏览 0 评论 0原文

我观察到 NuGet 包的奇怪行为,其中相同版本的 NuGet 包(在解决方案的不同项目下)引用不同版本的依赖 dll。 请看下面的图片: Microsoft.Extensions.Caching.Abstractions 版本 3.1.3 相同程序集,不同版本 相同程序集,不同版本

这是我的 Microsoft.Extensions.Caching 的 nuget 文件夹。抽象Microsoft.Extensions.Caching.Abstractions 的 Nuget 文件夹

但是日志显示版本 3.1.18 已加载,该解决方案中使用的任何包引用中从未使用过该版本。我在这里错过了什么吗?

`AppDomain: AssemblyLoad: Microsoft.Extensions.Caching.Abstractions, Version=3.1.18.0, 
Culture=neutral, PublicKeyToken=adb9793829ddae60`

我尝试将详细程度(工具 - >选项 - >项目和解决方案 - >构建和运行)更改为“诊断”,并且构建输出显示以下冲突:

`Encountered conflict between 'Platform:Microsoft.Extensions.Caching.Abstractions.dll' and 'CopyLocal:C:\Users\91998\.nuget\packages\microsoft.extensions.caching.abstractions\3.1.3\lib\netcoreapp3.1\Microsoft.Extensions.Caching.Abstractions.dll'. Choosing 'CopyLocal:C:\Users\91998\.nuget\packages\microsoft.extensions.caching.abstractions\3.1.3\lib\netcoreapp3.1\Microsoft.Extensions.Caching.Abstractions.dll' because AssemblyVersion '3.1.3.0' is greater than '3.1.0.0'`

请指导如何纠正此问题,以便有解决方案中同一程序集的版本之间不会发生任何冲突,并且所有项目中都将使用相同的程序集引用。

I have observed a strange behaviour of NuGet packages where the same version of NuGet packages (under different projects of a solution) refers different versions of dependent dlls.
Please see the images below:
Microsoft.Extensions.Caching.Abstractions Version 3.1.3
Same assembly , different version
Same assembly , different version

This is my nuget folder for Microsoft.Extensions.Caching.Abstractions:
Nuget folder for Microsoft.Extensions.Caching.Abstractions

But the logs shows that version 3.1.18 has been loaded, which is never used in any of the package references used in the solution. Am I missing something here?

`AppDomain: AssemblyLoad: Microsoft.Extensions.Caching.Abstractions, Version=3.1.18.0, 
Culture=neutral, PublicKeyToken=adb9793829ddae60`

I have tried changing the Verbosity (Tools--> Options--> Projects and Solutions--> Build and Run) to "Diagnostics" and the build output showed the following conflict:

`Encountered conflict between 'Platform:Microsoft.Extensions.Caching.Abstractions.dll' and 'CopyLocal:C:\Users\91998\.nuget\packages\microsoft.extensions.caching.abstractions\3.1.3\lib\netcoreapp3.1\Microsoft.Extensions.Caching.Abstractions.dll'. Choosing 'CopyLocal:C:\Users\91998\.nuget\packages\microsoft.extensions.caching.abstractions\3.1.3\lib\netcoreapp3.1\Microsoft.Extensions.Caching.Abstractions.dll' because AssemblyVersion '3.1.3.0' is greater than '3.1.0.0'`

Please guide how to correct this so that there won’t be any conflicts between versions of the same assembly within the solution and the same assembly reference will be used in all the projects.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文