Скомпилируйте приложение Windows (приложение WinForms) на основе C # для запуска в Mac OS High Sierra или Mojave - PullRequest
0 голосов
/ 25 ноября 2018

Я создал приложение (Windows Forms App) на Windows в C #.Теперь я хотел бы нацелить весь этот проект / приложение на Mac OS без изменения приложения.Есть ли простой способ добиться этого?Я не хочу перестраивать все приложение с нуля на MAC.Я не хочу использовать виртуальную машину на MAC ... У меня есть Visual Stuido 2017 и спаренный MAC.Но я здесь потерян.

Ответы [ 2 ]

0 голосов
/ 02 января 2019

; TLDR Mono , с использованием WinForms и MonoDevelop IDE для разработки.

.NET Framework - это полная реализация, которая включает в себя все, но работает только в Windows.

.NET Core - это новая реализация OpenSource.Net Framework, но не включает в себя WPF / WinForms - потому что они сильно зависят от DirectX / GDI, по сути, делая их только для Windows.

Xamarin .Xamarin на основе Mono Framework больше разветвился в сторону iOS и Android.Существует Xamarin Mac, но он поддерживает тот же инструментарий пользовательского интерфейса на основе GTK #, что и Mono. Существует эквивалентный инструментарий пользовательского интерфейса WinForms, а также Xamarin Forms , но только для мобильных устройств (iOS, Android и универсальная платформа Windows)

Моно .Mono - это реализация OpenNet для .Net, по умолчанию использует GTK # для пользовательского интерфейса.Работает нормально на всех Windows, Linux, MacOS.Использует GTK # как базовый инструментарий пользовательского интерфейса во всех ОС, включая Windows.

Что такое кроссплатформенность? Существует подмножество библиотеки базовых классов, называемое .NET Standard Library -Так же как и платформа компиляторов, только эти подмножества .Net являются действительно кроссплатформенными.

Подводя итог, Mono, тем не менее, поддерживает Windows Forms как в Linux, так и в macOS.За исключением некоторых угловых случаев это работает очень хорошо.Однако интерфейс выглядит только для Windows.Это похоже на запуск приложений Windows под WINE.Mono IDE по умолчанию: MonoDevelop .

Xamarin Mac отлично подходит, если вы хотите написать новое приложение с нуля, поскольку Xamarin Mac предоставляет вам полный MacOS SDK и предлагает свой собственныйIDE (Xamarin Studio).

В вашей ситуации Mono - лучший вариант.После установки моно вы можете даже попробовать запустить ваше текущее приложение как mono appName из терминала.Он должен отображать пользовательский интерфейс, даже если пути и другие ресурсы не работают.

0 голосов
/ 25 ноября 2018

Вы должны использовать .NET Core (не .NET Framework) для правильного запуска приложения в другой ОС, отличной от Windows.

Различия между платформами объяснены

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...