Можно ли связать Mono Runtime на OS X (без использования Xamarin)?
Я хочу связать среду выполнения Mono с моим приложением OS X, чтобы пользователям не нужно было устанавливать дополнительную инфраструктуру только для запуска моего приложения.
При попытке использовать функцию автоматической упаковки MonoDevelop и отметке "Включить среду выполнения Mono в комплект приложения" я получаю сообщение, что для этого мне нужен Xamarin.Mac. Теперь Xamarin имеет довольно высокую цену за такую крошечную компанию, как моя, и я надеюсь, что мне не придется приобретать весь пакет Xamarin просто для того, чтобы связать среду выполнения.
Я думаю, что есть и другие способы сделать это. Особенно я помню, что читал что-то о включенных фреймворках и задании переменных среды некоторое время назад, но больше не могу это найти. В Интернете есть комментарии и подсказки, даже здесь, на SO, и, похоже, все согласны с тем, что это действительно возможно, но я еще не нашел описания того, как это сделать. Похоже, что большинство ответов ссылаются на те части веб-страницы mono-project.com, которые в настоящее время отсутствуют, так как я подозреваю, что они перемещены в пакет Xamarin.
Итак, есть ли не-Xamarin способ включить среду исполнения Mono в мой комплект приложений, чтобы пользователи могли запускать ее без установки Mono?
2 ответа
Моно-среда выполнения имеет двойную лицензию, GPLv2 и Xamarin. Имея лицензированную версию GPL, вы юридически не можете связать среду выполнения (даже если это технически возможно). Покупая Xamarin.Mac, вы в основном покупаете право на бесплатную версию среды исполнения GPL, которую вы можете встроить в свое приложение.
Вы по-прежнему можете разрабатывать и распространять приложение с помощью MonoMac, но вашим пользователям потребуется установить mono (с помощью какого-либо установщика), и вы не сможете публиковать в App Store.
Смотрите также Где разница между Xamarin.Mac и Mono:OSX
Я считаю, что ответ Стефана неполон. Вы можете связать моно среду выполнения, если вы предоставляете конечному пользователю возможность обновлять моно среду выполнения независимо от вас. И вам не нужно связывать всю среду выполнения, а только те части, которые нужны вашему приложению.
Вот один старый пост, описывающий некоторые из шагов: http://mono.1490590.n4.nabble.com/Embedding-into-XCode-project-td1751644.html
Удачи.