WPF控件库的目标是.NET Core 3还是.NET Framework?

3
我正在将我的WPF应用程序从.NET Framework迁移到.NET Core 3。我有一个泛型UI库已发布在NuGet上,目前是针对.NET Framework v4.6.1的。现在,如果我只是将目标更改为.NET Core 3,那么它将不再在.NET Framework项目中工作。.NET Standard旨在解决这种问题,但我认为它不能解决WPF项目的问题。
在这里该怎么做呢?发布和管理两个独立的包?
然后,这个库还有两个其他派生库。如果我为基础库创建2个单独的包,那么我也必须发布和管理每个派生库的2个版本。这个解决方案很差。你有更好的建议吗?

.NET Core 3.0 增加了对之前不可用的 WPF 的支持,同时也支持 .NET Standard 2.1。理论上,如果你将代码针对 .NET Standard 2.1 进行编写,它应该可以在 .NET Core 和 .NET Framework 中都能够运行。但由于 .NET Core 中的 WPF 支持是新的,所以没有亲自动手尝试过很难说它的表现如何。 - Shameel
如果我选择 .NET Standard 2.1,就无法将 WPF 框架添加到项目中。 - Etienne Charland
啊啊啊!!!我忘了说,WPF在.NET Core中仅支持Windows平台,因此无法成为.NET Standard的一部分。我想你唯一的选择是维护2个代码库。 - Shameel
请注意,.NET 5旨在将这两个框架合并为一个。虽然2020年11月似乎还很遥远,但也许您可以考虑在那之前继续使用旧版.NET。https://devblogs.microsoft.com/dotnet/introducing-net-5/ - Andy
1个回答

1
一个针对.NET Core 3的WPF应用程序实际上可以引用和使用一个针对.NET Framework 4.6.1的控件库或NuGet包。
你不需要对控件库本身做任何事情,只要你不使用在.NET Core中不存在的API,否则你最终会得到运行时错误。
尝试像往常一样添加对DLL的引用或安装NuGet包。即使NuGet包只包含lib\net461中的一个单独的程序集,它也应该能够工作。

你说得对,它只是显示警告但是能够正常工作(大部分时间?)。我还遇到了各种其他的兼容性问题,所以我认为还不值得急于迁移。 - Etienne Charland

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接