.NET6 与 .NET Core 3.1 兼容性

Alo*_*zcz 5 compatibility .net-core-3.1 .net-6.0

拥有引用 .NET Core 3.1 NuGet 库的 .NET6 应用程序是否安全?

我使用一个简单的控制台应用程序测试了这个案例。一切看起来都很好,没有错误/警告。不过,我还没有找到任何具体信息,所以更想确认一下。

这很重要,因为我的提供商之一仅提供 .NET Core 3.1 NuGet 包。据了解,该公司需要一年左右的时间来准备 .NET6 / .NETStandard 版本。

Dav*_*dRR 10

您的 .NET Core 3.1 库很有可能作为 .NET 6 应用程序的一部分运行而不会出现任何兼容性问题。

\n

引用 .NET 基础知识文章影响兼容性的更改重点是我的):

\n
\n

纵观其历史,.NET 一直试图保持版本与版本之间以及 .NET 实现之间的高水平兼容性。\xe2\x80\xa6

\n

除了跨 .NET 实现的兼容性之外,开发人员还期望\n给定 .NET 实现的各个版本之间具有高水平的兼容性。特别是,为早期版本的 .NET Core 编写的代码应该可以在 .NET 5 或更高版本上无缝运行。事实上,许多开发人员希望新发布的 .NET 版本中的新 API 也应该与引入这些 API 的预发布版本兼容。

\n
\n

但是,不保证兼容性。文章接着说:

\n
\n

本文概述了影响兼容性的更改以及\n.NET 团队评估每种类型更改的方式。\n了解 .NET 团队如何处理可能发生的重大更改\n对于打开拉取请求以修改其行为的开发人员特别有帮助。现有的.NET API。

\n
\n

此外,在回答关于.NET Core 向后兼容性的问题时,.NET 运行时团队的一名成员表示:

\n
\n

我们不保证主要版本之间 100% 兼容。对于 ASP.NET Core 和运行时本身都是如此。我们有意做出重大改变,因为我们认为这些改变是推动平台向前发展所必需的,并且 .NET 生态系统适应这些改变的成本足够低。

\n
\n

可能影响 .NET Core 3.1 库兼容性的重大更改是针对.NET 5.NET 6记录的更改。

\n

但是,如果您的 .NET Core 3.1 库没有遇到任何问题,则似乎记录的兼容性问题都不适用。

\n

当然,最终,当您的供应商提供已针对 .NET 6 进行更新的库时,您将对该库有更高的信心。

\n

最后,随着 .NET 5 的引入,对 .NET Standard 的需求逐渐减少

\n
\n

.NET Standard 是 .NET API 的正式规范,\n可用于多种 .NET 实现。.NET\nStandard 背后的动机是在 .NET 生态系统中建立更大的一致性。\n.NET 5 及更高版本采用不同的方法来建立一致性,从而在大多数情况下不再需要 .NET Standard。\n 但是,如果您希望在 .NET Framework 和任何其他 .NET 实现(例如 .NET Core)之间共享代码,您的库应以 .NET Standard 2.0 为目标。不会发布新版本的 .NET Standard,但 .NET 5、.NET 6 和所有未来版本将继续支持 .NET Standard 2.1 及更早版本。

\n
\n