【问题标题】:Can WPF applications be run in Linux or Mac with .Net Core 3?WPF 应用程序可以在带有 .Net Core 3 的 Linux 或 Mac 上运行吗?
【发布时间】:2019-05-26 00:20:48
【问题描述】:

微软宣布 .NET Core 3 带有 WPF 和 Windows 窗体。那么我可以使用 .NET Core 3 创建适用于 Linux 或 Mac 的桌面应用程序吗?

【问题讨论】:

  • 根据他们的更改,他们声称已为 .net 核心包添加了可执行文件,因此看起来您可能能够在 Linux 上运行桌面应用程序,但就像任何新技术一样,我将采用它在这一点上还有一点点盐,因为它只处于测试阶段。
  • 不,但类似的东西正在开发中而不是 MS github.com/AvaloniaUI/Avalonia

标签: linux wpf .net-core desktop-application .net-core-3.0


【解决方案1】:

不,他们已经明确表示这些只是窗户。在其中一次 .NET Core 3.0 讨论中,他们还澄清说他们不打算将来使这些功能跨平台,因为整个概念源自 Windows 特定功能。他们谈到了为跨平台应用程序思考一个全新的想法,这并不容易。

来源:https://youtu.be/HNLZQeu05BY

更新

新发布的 .NET 5 现在旨在通过不再将其称为“.NET Core”来避免所有这些混淆。

更新 2

对于 blazor 客户端(2020 年 5 月发布),有一个使用 webview 的跨平台应用程序的新实验项目正在进行中。

来源: https://blog.stevensanderson.com/2019/11/01/exploring-lighter-alternatives-to-electron-for-hosting-a-blazor-desktop-app/

【讨论】:

  • 这非常令人困惑,因为 dotnet 核心意味着跨平台,不是吗?如果它再次变得依赖于平台,那么这条路线有什么价值呢?也与比赛(Java-Land)有关。有什么想法吗? :-)
  • @christianparpart 起初我认为 WPF 正在成为跨平台的原因相同。然而,虽然 .NET Core 最初主要是作为一个跨平台概念,但现在由于它是一个重新发明,它的开发也比 Framework 干净得多。这种方法并没有真正将 .NET Core 带入该路线。只是依赖于 Windows 的东西现在是“依赖于更清洁的 Windows”。他们仍在朝着跨平台桌面的方向努力。这需要时间,但仍然是一个跨平台的方向。
  • .NET Core 仍然是跨平台的,但 Windows 桌面支持不是 .NET Core 的一部分,它被视为使用 .NET Core 的附加 SDK。我想迟早会有人分叉它并开始在跨平台上工作,需求巨大,像 Avalonia 这样的单独工作没有人力(我在某处读到,最初的 WPF 工作涉及近 1000 名全职开发人员) .
  • @McGuireV10 是的。对 Windows 桌面的支持将作为一组“Windows 桌面包”添加。它包含 UWP、WPF 和 Windows 窗体。这只适用于Windows。 link
【解决方案2】:

WPF 或 Winforms 不支持。但是您仍然可以在 Linux 上使用 .NET Core 开发桌面应用程序,使用 GtkSharpAvalonia 等其他库

【讨论】:

  • 这实际上似乎使用标准而不是核心。但可以说它们是相同的。其他一些类似的选项将是 blazor 的扩展
  • 很有趣,我不知道。但是 Avalonia 是一个 Visual Studio 扩展,Visual Studio 不能安装在 Linux 上,可以吗?
  • 只有视觉设计师在 vs 扩展中。您可以在任何您喜欢的编辑器/IDE 中编写代码。
  • 酷,是的,我刚刚在 Linux Fedora 上安装了 Avalonia。我正在按照标准模板运行第一个 MVVM 应用程序。
【解决方案3】:

嗯,这个名字本身就是 Windows Presentation Foundation。所以它主要是基于窗口的。

但值得注意的是,.NET MAUI 将与 .NET 6 一起提供的新 UI 框架是跨平台的,具有单代码库、单项目结构。

在撰写本文时目前处于预览状态,将于 2021 年 11 月发货。这是roadmap

【讨论】:

    【解决方案4】:

    虽然它不是 linux 上的原生 dotnet core,但它可能会有所帮助 - 使用 wine。

    我发现一个非常有用的评论in the discussion here,更多细节here

    也就是说,可以在wine下使用windows版本的dotnet core。

    我还没有尝试过,但从我提到的文章中我可以说它看起来不错并且可能是一个选择。

    【讨论】:

    • 据我所知,如果你使用Wine,你甚至不仅限于.NET Core,你也可以使用.NET Framework应用程序:appdb.winehq.org/…
    猜你喜欢
    • 2021-10-28
    • 1970-01-01
    • 2019-02-10
    • 1970-01-01
    • 2019-10-04
    • 2010-10-09
    • 1970-01-01
    • 1970-01-01
    • 2021-01-23
    相关资源
    最近更新 更多