【问题标题】:C# windows application run in MacOS [duplicate]C# windows应用程序在MacOS中运行[重复]
【发布时间】:2020-07-10 02:07:08
【问题描述】:

我只是 C# Windows 窗体的新手。现在我有一个上传 txt 文件并输出到 PDF 文件的项目。现在我需要为此使用 C# windows 窗体,但我只是好奇如果我使用 C# Windows 窗体开发它,我是否能够在 MacOS 环境中安装应用程序并将其用作如何在 windows 上使用它?有什么需要考虑的吗?就像我是否需要安装某个软件包才能使其在 Mac 中运行,反之亦然?

【问题讨论】:

标签: c# .net winforms c#-4.0


【解决方案1】:

我是 C# Windows 窗体的新手。

嗨!

现在我有一个上传 txt 文件并输出为 PDF 文件的项目。

继续……

现在我需要为此使用 C# windows 窗体

不,您不需要只需使用 WinForms 上传文本文件和下载 PDF。

但我很好奇如果我使用 C# Windows 窗体开发此应用程序,我能否在 MacOS 环境中安装该应用程序并将其用作在 Windows 上使用它的方式?

不,你不能。 WinForms 与 Microsoft Windows 操作系统紧密耦合(最大的线索在于名称:Windows Forms。WinForms' 是 Windows 默认窗口控件和小部件(也称为 User32 和 Common控件)以及 OLE、COM + ActiveX 和其他以 Windows 为中心的 API。

There are attempts 使 WinForms 的子集在其他操作系统上工作,但由于 WinForms 本身不是跨平台的,因此您不会支持 macOS 的主菜单,您的用户将能够告诉您您的程序外观和感觉不像原生程序。

有什么需要考虑的吗?就像我是否需要安装某个软件包才能使其在 Mac 中运行,反之亦然?

不,它不会起作用。

替代方法:

  • 使用 WinForms System.Windows.Forms 制作您的应用程序,并通过某种形式的应用程序远程处理使其对 macOS 用户可用:
    • 在使用 macOS 的远程桌面应用程序访问的 Windows 机器上运行它。
    • 在使用基于浏览器的 RDP 网关访问的 Windows 机器上运行它。
    • 在 Apple Mac(Parallels Fusion、VirtualBox 等)上运行的 Windows 虚拟机中运行它。
  • 在 .NET Core 中仅使用本机支持的跨平台功能:
    • 使用内置的http://localhost ASP.NET Web 服务器创建您的应用程序,该服务器托管一个 GUI Web 应用程序,该 Web 应用程序通过与您的应用程序代码的其余部分交互的 Web 浏览器访问。
    • 制作一个仅限命令行的应用程序。
    • 使用类似ncurses for .NET 的库制作文本模式GUI 应用程序。
  • 制作一个特定于平台的 GUI,同时仍然共享您的应用程序代码的其余部分(例如,使用 Xamarin 从 .NET 使用 Cocoa,在 Windows 上使用 WinForms 或 WPF,在 Linux/BSD 上使用 GTK#,等等)。

【讨论】:

  • 可能值得注意的是 .NET 5 将有一定程度的 WinForms 支持(并且将是跨平台的):devblogs.microsoft.com/dotnet/announcing-net-5-0-preview-1/…
  • @jslowik .NET 5 运行时是跨平台的,是的 - 但 WinForms 只是 .NET 更大的类库的一个组件,它不包含在跨平台部分中。那篇博客文章没有提到 WinForms 在其他平台上可用 - 我认为无论如何都是不可能的,因为例如 Control.Handle 之类的东西变得毫无意义。
  • 很好,@Dai。我想我只是希望它是真的!
  • @Dai 感谢您作为后续问题的回复,我仍然可以使用 C# 开发适用于 Windows 和 Mac 的应用程序吗?
  • @MadzQuestioning .net 核心现在也可用于开发 Mac 和 Windows 的控制台应用程序。但是Winform不支持​​,甚至可以用.net核心开发,但是这些组件不支持。
猜你喜欢
  • 1970-01-01
  • 2014-09-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-16
  • 2018-02-28
相关资源
最近更新 更多