如何让 .NET Core 3.1 项目与 .NET 5.0 项目一起工作

时间:2021-02-19 23:22:45

标签: asp.net-core-3.1 .net-5

当 .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 标准创建它们。

有没有人遇到过这种情况?

2 个答案:

答案 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 合并在一起,结束了保留两者的负担;目的还包括 MonoXamarin (MAUI)。但是,它不能确保与以前的版本兼容。 This 是一篇关于该主题的好文章 - 但有些功能推迟到 .NET 6

因此,获得所需兼容性的最佳方法是使用 .NET Standard,或者更好的是,将应用程序迁移到 .NET 5,因为之前版本的支持即将结束。在我工作的团队中,我们进行了一些从 .NET Core 3.x.NET 5 的迁移,而且非常简单。

值得注意的是,.NET 5 不是 LTS。另一方面,.NET 6 是。有关 .NET 版本和支持政策的更多详细信息 here