.NET 6 中的 .NET Framework 4.5 / .NET Standard 1.0 支持
Posted
技术标签:
【中文标题】.NET 6 中的 .NET Framework 4.5 / .NET Standard 1.0 支持【英文标题】:.NET Framework 4.5 / .NET Standard 1.0 support in .NET 6 【发布时间】:2021-10-08 05:43:51 【问题描述】:我目前正在使用 .NET 5 开发应用程序,并打算在完全发布后将其迁移到 .NET 6。
我正在考虑使用在 .NET Framework 4.5 中实现的库,该库在 .NET 5 中运行
使用 .NET 6 是否仍然兼容?使用这样的库是否还有其他风险?
【问题讨论】:
您需要查看 .net 标准。这提供了一个可以在不同框架之间使用的“标准”。 docs.microsoft.com/en-us/dotnet/standard/net-standard 但基本上你不能在纯 .Net Framework 中开发并期望它在 .Net 5 或 6 中工作。 @ErmiyaEskandary 我说我想了解有关兼容性和风险的信息。尽管如此,这不是我的图书馆,我对图书馆的唯一了解是它在 .Net Framework 4.5 上中继。自己实现这些东西将是一大堆工作。据我了解,.Net Framework 4.5 实现了某些版本的 .Net 标准,这就是它可以与 .Net 5 一起使用的原因。而且目前确实如此。我真的不知道如何确定这种兼容性是否会在未来持续或存在这些依赖关系的风险。 @tobias 啊好的,写答案-谢谢你的澄清:) .NET 5 及更高版本实际上是 .NET Core。 .NET 4.5 本身不支持,几个月后,所有低于 4.6.2 的版本也将不支持。that's implemented in .NET Framework 4.5, which works in .NET 5
并非如此。不能在 .NET Core 中使用 .NET Framework 库。只有当它以 .NET Standard 为目标时,您才能这样做。而且由于您正在迁移到 .NET Core,因此没有理由针对低于 .NET Standard 2 的任何东西
Will it still be compatible using .NET 6
不,不会的。是否有任何问题取决于它做了什么以及它使用了哪些 API。例如,WinForms 和 WPF API 最初是在 .NET Core 3.1 中添加的,在 .NET 5 中具有完全(ish)支持。WebForms 从未迁移过。如果您使用特定于 Windows 的目标,则特定于 Windows 的 API 可以在 .NET 5 及更高版本中工作
【参考方案1】:
由于您的项目在 .NET Framework 4.5 上并且在您的 .NET 5 项目中“工作”,因此它将以 .NET Standard 1.0 为目标。
在这种情况下,根据Microsoft documentation for .NET Standard versioning,.NET 6.0 也将完全支持 .NET Standard 1.0。
您的升级应该没有问题。
还有其他风险吗?
最好使用更新后的库,它的功能与旧库相同。
当然,这样的库可能不存在,因此 MSFT 努力保持兼容性。
除了库无法利用新版本 .NET 引入的最新 .NET 安全性和性能改进之外,您会没事的。
【讨论】:
评论不用于扩展讨论;这个对话是moved to chat。以上是关于.NET 6 中的 .NET Framework 4.5 / .NET Standard 1.0 支持的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Oracle 和 SQL Server 将 .NET 4.5 C# Entity Framework 6 中的列映射为大写?
C# 利用.NET 升级助手将.NET Framework项目升级为.NET 6