当 .NET 5.0 发布时,提到的功能之一是能够创建 .NET 5.0 组件,它可以与 .NET 3.1 一起使用,因此您不必在不同版本之间使用 .net 标准。
好吧,我尝试将 .net 3.1 与 .net 5.0 一起使用,但我不断收到错误消息。有什么特别的事情我们必须做才能使这些工作?我们公司有多个应用程序使用各种版本的 .NET 核心。从 2.2、3.0、3.1 到 .net 5.0。我们想为一些可重用的组件创建一些 NuGet 包,但试图弄清楚如何在这些应用程序中使用 .net core,我不想用 .net 标准创建它们。
有没有人遇到过这种情况?
答案 0 :(得分:1)
不能从低于 .net 5.0 的 .net 版本引用 .net 5.0 库/dll。 .net 标准 2.1 应该用于不同版本的 .net core 和 .net 5.0 之间的兼容性。
另一个注意事项 - 假设这是可能的,最好将所有 .net 核心项目更新到 5.0。 .net 核心版本 <= 3.0(非 .net 标准)已结束生命周期。
见here。
答案 1 :(得分:0)
您没有提供错误信息,但尽管如此,可以说 .NET 5
并不能确保向后兼容。 Microsoft 提供了有关兼容性和重大更改的信息 here。
.NET 5
将 .NET Framework
和 .NET Core
合并在一起,结束了保留两者的负担;目的还包括 Mono
和 Xamarin
(MAUI
)。但是,它不能确保与以前的版本兼容。 This 是一篇关于该主题的好文章 - 但有些功能推迟到 .NET 6
。
因此,获得所需兼容性的最佳方法是使用 .NET Standard
,或者更好的是,将应用程序迁移到 .NET 5
,因为之前版本的支持即将结束。在我工作的团队中,我们进行了一些从 .NET Core 3.x
到 .NET 5
的迁移,而且非常简单。
值得注意的是,.NET 5
不是 LTS。另一方面,.NET 6
是。有关 .NET 版本和支持政策的更多详细信息 here。