; 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
из терминала.Он должен отображать пользовательский интерфейс, даже если пути и другие ресурсы не работают.