Является ли Рослин кросс-платформой?
Я довольно долго смотрел Roslyn, и мне это любопытно и волновать. Одна вещь, которую я заметил, это то, что они упомянули, что компилятор переписан в управляемом коде. Это ставит вопрос о том, может ли Roslyn работать на виртуальных машинах без .NET, таких как Mono.
Мне бы очень хотелось встроить скрипты С# с использованием Roslyn в мои видеоигры и использовать многие из своих других функций в моих приложениях, но мне интересно, не использует ли Roslyn возможность запускать его в Mono.
Кто-нибудь пытался запустить Roslyn на Mono? Является ли это возможным? Почему или почему нет?
Чтобы уточнить, меня интересует, может ли управляемая сборка работать на Mono и может ли она генерировать сборки, которые могут выполнять mono.
Ответы
Ответ 1
Несмотря на то, что она была самой удаленной от Эрика, Roslyn был выпущен как истинный Open Source (Apache 2.0) и на самом деле теперь кросс-платформенный.
Мигель де Икаса из Xamarin показал, что он работает на Mono at BUILD.
Когда Roslyn выпускает, он станет частью Mono. Они уже поддерживают ветку в репозитории Mono Git.
Ответ 2
Как уже упоминалось в комментарии @Govert в комментарии, если вы хотите внедрить возможности сценариев С#, вы должны просто использовать Mono-эквивалентную библиотеку/инструмент: Mono-Csharp. (Тем более, что даже если Roslyn может работать на Mono, его лицензия может указывать на то, что вам не разрешено.)
Этот инструмент в мире Mono существует намного раньше, чем Roslyn BTW, и является открытым исходным кодом. Здесь вы даже ведете блог о сотрудниках Microsoft и загружаете его в Nuget:
http://blog.davidebbo.com/2012/02/quick-fun-with-monos-csharp-compiler-as.html
Надеюсь, твоя игра забьет задницу!