首页 > 解决方案 > 将 Microsoft nuget 与较低的 dotnet 核心版本相结合

问题描述

我有一个 dotnet core 2.1 lts docker 映像,我需要在日志中有一个时间戳。dotnet core 3.0的Microsoft.Extensions.Logging预览版具有此功能。当然这个包不会有长期的支持。

我可以将共享 dotnet 核心版本的 nuget 包与较低版本的 dotnet 核心框架结合起来,还是会导致设置不受支持?

标签: .net-core

解决方案


您没有指定您的应用程序使用什么,所以我需要写一个有点通用的答案。

Microsoft.Extensions.Logging 包以 netstandard 2.0 为目标,这意味着它将在 dotnet core 2.1 上运行

您将遇到的这个问题是,它也会强制它使用的依赖项进行升级:

Microsoft.Extensions.Configuration.Binder (>= 3.0.0-preview4.19216.2)
Microsoft.Extensions.DependencyInjection (>= 3.0.0-preview4.19216.2)
Microsoft.Extensions.Logging.Abstractions (>= 3.0.0-preview4.19216.2)
Microsoft.Extensions.Options (>= 3.0.0-preview4.19216.2)

而且那些也有依赖关系......最后,它可能会使用预览中的包升级你的很多项目依赖关系。(因此不支持)

我不建议您这样做,但最终它仅取决于您在应用程序中使用的功能。如果只有您的代码依赖于 Microsoft.Extensions.Logging 功能,您应该没问题,尽管目前不支持。一旦您使用使用升级 Microsoft.Extensions 包之一的其他包,主要版本更改应该告诉您这可能会导致问题。


推荐阅读