будет ли он работать точно так же? Или мне придется переписать его для работы с библиотеками Моно?
Это действительно зависит от того, что делает ваша программа и как она написана.
Если вы используете чистый C # и базовые функции .NET Framework, которые поддерживаются в Mono, они будут «просто работать» без изменений. Однако если вы используете неподдерживаемые функции (например, любые сторонние библиотеки, созданные на основе встроенного взаимодействия, или WPF и т. Д.), Они не будут работать.
Очень хорошая идея регулярно запускать Mono Migration Analyzer на ваших сборках по мере их разработки. Это расскажет вам о любых несовместимостях.