netstandard和dotnet核心的分离

问题描述 投票:0回答:1

我们的组织已使用dotnet Core 2.2 SDK构建了.Net标准2.0 dll。该库使用Microsoft.Extensions.Options.ConfigurationExtensions,它们需要与SDK相同的版本。该库编译良好,所以我们有一个netstandard 2.0库,对吧?

我们的组织后来意识到dotnet Core 2.2现在已不再受支持,但没有时间立即返回并修复所有库以将它们移回dotnet Core支持的版本2.1。它们是netstandard 2.0,所以没事吧?

我们正在基于受支持的asp.net Core 2.1构建一个新的asp.net项目,当尝试使用该库时,由于编译问题,我们发现我们必须升级到2.2。我在这里想念什么吗? netstandard dll不应该独立于用于创建它的基础SDK吗?

asp.net .net-core .net-standard
1个回答
0
投票
NU1107: Version conflict detected for Microsoft.Extensions.Configuration. Install/reference Microsoft.Extensions.Configuration 2.2.0 directly to project MyAspNet to resolve this issue. MyAspNet -> MyNetStandard 1.5.4 -> Microsoft.Extensions.Options.ConfigurationExtensions 2.2.0 -> Microsoft.Extensions.Configuration.Binder 2.2.0 -> Microsoft.Extensions.Configuration (>= 2.2.0) MyAspNet -> Microsoft.AspNetCore.App 2.1.1 -> Microsoft.Extensions.Configuration (>= 2.1.1 && < 2.2.0).

问题实际上与.Net标准或SDK无关。确实,问题出在Microsoft.Extensions.Configuration (>=2.1.1 && <2.2.0)的ASP.Net Core 2.1依赖项约束。通过引用以下库来解决版本冲突确实允许应用程序编译。但是此解决方案依赖于.Net Core 2.2.0 DLL,ASP.Net 2.1可能会或可能不会或无法支持DLL。

Microsoft.Extensions.Options.ConfigurationExtensions = 2.20
Microsoft.Extensions.DependencyInjection.Abstractions = 2.20
Microsoft.Extensions.Configuration.Binder = 2.20
Microsoft.Extensions.Configuration = 2.20
Microsoft.Extensions.Configuration.Abstractions = 2.20
Microsoft.Extensions.Primitives = 2.20

鉴于.Net Core 3.1已经推出了很短的时间,并且看起来各个库仍需要更新(例如,Microsoft.Extensions.Options.ConfigurationExtensions的最新版本是3.0),这可能并不是一个好的选择。时间。仍然可以选择使用ASP.Net 2.2(现在已不受支持)掷骰子,或者将私有库移回具有.Net Core 2.1依赖项。

© www.soinside.com 2019 - 2024. All rights reserved.