簡體   English   中英

編譯基於 C# 的 Windows (WinForms App) 應用程序以在 Mac OS High Sierra 或 Mojave 上運行

[英]Compile C# based Windows (WinForms App) application to run on Mac OS High Sierra or Mojave

我在 Windows 上用 C# 構建了一個(Windows 窗體應用程序)應用程序。 現在,我想在不更改應用程序的情況下將整個項目/應用程序定位到 mac OS。 有什么簡單的方法可以實現嗎? 我不想在 MAC 上從頭開始重建整個應用程序。 我不想在 MAC 上使用虛擬機...我有 Visual Stuido 2017 和配對的 MAC。 但是,我在這里迷路了。

;TLDR Mono ,使用WinFormsMonoDevelop IDE 進行開發。

.NET Framework是完整的實現,包括所有內容,但只能在 Windows 上運行。

.NET Core是 .Net 框架的較新的開源實現,但不包括 WPF/WinForms - 因為它們嚴重依賴 DirectX/GDI,本質上使它們僅適用於 Windows。

哈馬林 基於 Mono 框架的 Xamarin 分支更多地面向 iOS 和 Android。 有一個 Xamarin Mac,但它支持與 Mono 相同的基於 GTK# 的 UI 工具包。有一個 WinForms 等效的 UI 工具包,也稱為Xamarin Forms,但它僅適用於移動設備(iOS、Android 和通用 Windows 平台)

單聲道 Mono 是 .Net 框架的開源實現,默認使用 GTK# 作為 UI。 在所有 Windows、Linux、macOS 上運行良好。 在包括 Windows 在內的所有操作系統上使用 GTK# 作為底層 UI 工具包。

什么是跨平台? 有一個基類庫的子集,稱為.NET 標准庫- 以及編譯器平台,只有 .Net 的這些子集才是真正的跨平台。

總而言之,Mono 確實支持 Linux 和 macOS 上的Windows 窗體 除了一些極端情況,它工作得很好。 但是,UI 外觀和感覺僅適用於 Windows。 這就像在 WINE 下運行 Windows 應用程序。 默認 Mono IDE 是MonoDevelop

如果您想從頭開始編寫新應用程序, Xamarin Mac非常棒,因為 Xamarin Mac 向您公開了完整的 macOS SDK 並提供了自己的 IDE (Xamarin Studio)。

不過,在您的情況下,Mono 是最佳選擇。 安裝 mono 后,您甚至可以嘗試從終端以mono appName運行您當前的應用程序。 即使路徑和其他資源被破壞,它也應該呈現 UI。

2021 年更新

WPF 和 WinForms 現在是開源的並且是 .Net Core 的一部分(現在被稱為.Net 。Core 已在名稱中刪除)。 以前的經典 .Net 現在稱為 .Net 框架。 新的 WPF/WinForms 功能增強僅適用於 .Net。 盡管這些仍然只是 Windows 並且將保持如此。

Avalonia UI 框架Uno 平台是較新的基於 .Net Core (AKA .Net) 的跨平台解決方案。 兩者都使用 XAML。 Avalonia 更像是 WPF,而 Uno 則試圖成為跨平台的 UWP。

您必須使用 .NET Core(而不是 .NET Framework)才能在與 Windows 不同的操作系統上正確運行應用程序。

平台之間的差異解釋

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM