【问题标题】:How to use Mono library in .NET Core 3 project on Linux?如何在 Linux 上的 .NET Core 3 项目中使用 Mono 库?
【发布时间】:2020-01-31 22:51:46
【问题描述】:

我想将引用 System.Windows.Forms 的 .NET 库移植到 .NET Core 3。在 Linux 上使用 Visual Studio Code、Omnisharp 等进行开发时。

我目前的理解是,这是不可能的,因为 Windows 窗体需要......好吧 Windows。但是 Mono 库呢?我知道该库使用 Mono(包含 System.Windows.Forms)在 Linux 上运行。

我可以参考那些 Mono 库来让我的 .NET Core 3 项目在 Linux 上构建吗?

【问题讨论】:

  • 如果这个问题是无稽之谈,请留下简短的评论。不幸的是,仅仅投反对票并没有帮助。
  • 出于某种原因,Windows 窗体被 Microsoft 排除在跨平台之外。 Mono 实现存在重大问题(特别是在 macOS 上)。虽然从长远来看,当然有人可能会解决这些问题,但你真的应该考虑一个替代方案,blog.lextudio.com/… 同样,这里已经多次询问 Mono WinForms,我想这就是你被否决的原因。

标签: .net linux winforms .net-core


【解决方案1】:

要在 .NET Core 中引用一个库,该库必须使用 .NET Standard(或者当然也可以使用 .NET Core)发布。我不相信 Mono 的内置框架库是单独发布的和/或已移植到 .NET Standard。如果您希望跨平台工作,我认为您是否需要迁移到不同的 UI 库。

【讨论】:

  • 只有最后一句话是正确的。前两个不正确的原因。
  • 1) “必须使用 .NET Standard 发布”?不必要。 2) “我不相信 Mono 的内置框架库是单独发布和/或已移植到 .NET Core”?甚至在 .NET Core 1.0 RTM 之前,Mono WinForms 就已经被移植到实验中,并且当时它可以工作。这些实验没有继续进行,因为 Mono WinForms 有自己的问题,不值得。
  • @LexLi 随时编辑我的回复以进行更正。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-30
  • 2018-03-29
  • 1970-01-01
相关资源
最近更新 更多