Monodevelop
Компилятор, используемый monodevelop
monodevelop запускает некий MSBuildBuilder (поставляется с ним вместе), который постоянно висит в памяти и, как я подозреваю, занимается сборкой. Судя по тому, что во время сборки запускается только /usr/bin/mono-sgen /usr/lib/mono/4.5/csc.exe, я делаю вывод, что он сам берёт на себя роль msbuild, не вызывая его явно.
Упомянутый csc.exe это
$ /usr/bin/mono-sgen /usr/lib/mono/4.5/csc.exe --help Microsoft (R) Visual C# Compiler version 2.8.2.62916 (2ad4aabc) Copyright (C) Microsoft Corporation. All rights reserved.
В то время как mcs это
$ mcs --help Turbo C# compiler, Copyright 2001-2011 Novell, Inc., 2011-2016 Xamarin, Inc, 2016-2017 Microsoft Corp
Как я понимаю, mcs это оригинальный компилятор проекта Mono и он не используется для современных проектов. А csc.exe это компилятор Roslyn из проекта .NET Core, адаптированный для Mono в рамках сливания всех реализаций Mono в одну.
Получается, что сборка через monodevelop и msbuild в консоли равнозначна, поскольку msbuild также вызывает csc.exe для сборки, обрабатывая файл .csproj.
msbuild сам подхватит файл, и .sln и .csproj, смотря в каком каталоге проекта запустить.
Если нужно явно управлять типом сборки, Debug или Release:
$ msbuild /p:Configuration=Release