Любой код C #, который вы компилируете из MonoDevelop или где-либо еще, может быть запущен на любой платформе с Mono или .NET Framework.Пока в системе Linux установлена Mono, она может запускать любое скомпилированное приложение C #, в том числе .exe, скопированное с компьютера Windows.
Причина этого в том, что при компиляции приложения C # оно не компилируется.в собственный системный код, он компилируется в CIL .Когда вы запускаете программу, она автоматически JIT компилирует ваш код для системы, на которой она работает, оставляя исходный исполняемый файл без изменений.Как .NET Framework для Windows, так и Mono для всего остального могут считывать и компилировать байт-код CIL.
И еще одна вещь, о которой следует помнить, Mono не имеет всего стека .NET Framework.Почти все BCL не повреждены, но такие библиотеки, как WPF, недоступны в Mono.Mono рекомендует использовать GTK # для графического интерфейса.