【发布时间】:2019-09-27 01:46:52
【问题描述】:
我正在将我的 WPF 应用程序从 .NET Framework 移植到 .NET Core 3。我得到了这个在 NuGet 上发布的通用 UI 库,它当前面向 .NET Framework v4.6.1。现在,如果我只是将目标更改为 .NET Core 3,那么它将不再适用于 .NET Framework 项目。 .NET Standard 旨在解决此类问题,但我认为它对 WPF 项目没有帮助。
在这里做什么是正确的?发布和管理 2 个单独的包?
那么这个库还有 2 个其他派生库。如果我为基础库创建 2 个单独的包,这意味着我还必须发布和管理每个派生库中的 2 个。这个解决方案很臭。有更好的吗?
【问题讨论】:
-
.NET Core 3.0 增加了对 WPF 的支持,这是以前不可用的,它还支持 .NET Standard 2.1。从理论上讲,如果您的代码针对 .NET Standard 2.1,它应该可以在 .NET Core 和 .NET Framework 中运行。但由于 .NET Core 中的 WPF 支持是新的,我想如果不亲自动手,就很难说出结果如何。
-
如果我以 .NET Standard 2.1 为目标,我无法将 WPF 框架添加到项目中
-
啊!!!我忘了提,.NET Core 中的 WPF 仅在 Windows 平台上受支持,因此它不能成为 .NET Standard 的一部分。我想留给你的唯一选择是维护 2 个代码库。
-
请注意,.net 5 旨在将两个框架合二为一。 2020 年 11 月似乎还有很长的路要走,但也许您可以考虑在此之前使用旧的 .net。 devblogs.microsoft.com/dotnet/introducing-net-5