Mono сам по себе является кроссплатформенным.
Разрабатывая специально для mono, вы сможете запускать свой исполняемый файл на любой платформе, для которой есть mono.Само по себе это самое большое преимущество mono по сравнению с MSFT-платформой .Net.Сказано иначе: Если вы собираете сборку с помощью mono, вы гарантируете межплатформенную поддержку, в то время как сборка с .Net может не дать вам этого.
Mono сделал некоторые обновления донедостатки в .Net (например, Mono.security предлагал функции, которых нет в .Net 2.0, хотя я считаю, что MSFT подобрал их для более поздних выпусков).
Можно собрать сборку .Net с использованием Visual Studio и запустить ее в Mono, однако ваша сборка должна позаботиться об использовании только каркасов / библиотек, которые Mono поддерживает , ичто любые неуправляемые сборки, на которые ссылается ваша сборка, доступны для выбранной вами ОС.Другими словами: если ваша сборка использует dll C ++ для Windows, вы должны убедиться, что у вас есть правильный файл .a / .so для linux.
Чтобы запустить сборку .net в Linux (при условии, что mono установлен правильно), введите: mono myprogram.exe