【问题标题】:How can I deploy .NET Framework application on Mac and Windows both? How to Build Cross-Platform(windows and MacOS) .NET Core?如何在 Mac 和 Windows 上部署 .NET Framework 应用程序?如何构建跨平台(windows 和 MacOS).NET Core?
【发布时间】:2020-10-10 09:11:38
【问题描述】:

我有 Windows 版本的 .NET Framework 桌面应用程序。现在我也想为 MacOS 提供版本。

有没有使用 C# 的解决方案?

.NET Core 是否适用于 Windows 和 MacO?

【问题讨论】:

  • 根据this post,您可以在Windows 和MacO 上运行.Net Core 应用程序。您可以按照here的说明进行操作。
  • 官方文档是你的朋友:docs.microsoft.com/en-us/dotnet/core/install/macos。不,您不能在 MacOS 上运行 .NET Framework 应用程序。
  • @MarkusMeyer 这个问题清楚地表明“.Net Core 是否适用于 Windows 和 MacOs?”,所以这个问题不是关于 .NET Framework 而是关于 MacOS 中的工作原理。
  • .NET Core 本身 - 是的,它将在 MacOS 上运行。 WPF 或 Windows 窗体 - 即使在 .NET Core 上 - 但是不会 .. 请参见此处:devblogs.microsoft.com/dotnet/…
  • 你的意思是它是 Windows 上的桌面应用程序(例如 WinForms/WPF)?如果是这样,它将无法在 .NET Core 之上的 Linux/MacOS 上运行。如果它是一个 WinForms 应用程序,.NET Framework 版本可能使用Mono 在 Linux/MacOS 上运行,但前提是它不直接使用任何 Windows API。

标签: c# .net-core


【解决方案1】:

我已经使用 WinForms C# 构建了应用程序。我已经为窗口创建了 exe。同样我也想在 MacOS 上运行应用程序

那你可以试试Mono。它有(相当有限的)WinForms support。但是,如果您从未在任何其他平台上测试过它,那么请为一些问题做好准备。其中:

  • 您将无法直接使用任何 WinAPI(即 Win32 dll 的外部方法)
  • 您可能会想到一些行为差异。其中一些只影响特定的distributions
  • 不过,其中许多可以通过代码中的特殊处理来处理。但这意味着您将需要一些IsWindowsdistinction,就像在我的this 项目中一样。

别忘了安装libgdiplus,这样就可以在非Windows平台上使用System.Drawing,因为WinForms是基于GDI+构建的。

【讨论】:

    猜你喜欢
    • 2020-10-18
    • 2020-01-05
    • 2013-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-26
    • 1970-01-01
    相关资源
    最近更新 更多