Это так же, как в Windows - используйте System.Diagnostics.Process.Помните, что если вы перенаправляете stdout / stderr и буферы заполняются (что вполне возможно при использовании GCC), это может привести к взаимоблокировке, поэтому собирайте их в StringBuilders.
var psi = new Process.StartInfo ("gcc", "-gcc -arguments") {
RedirectStandardError = true,
RedirectStandardOutput = true,
UseShellExecute = false,
};
var error = new System.Text.StringBuilder ();
var output = new System.Text.StringBuilder ();
var p = Process.Start (psi);
p.EnableRaisingEvents = true;
p.OutputDataReceived +=
(object s, DataReceivedEventArgs e) => output.Append (e.Data);
p.ErrorDataReceived +=
(object s, DataReceivedEventArgs e) => output.Append (e.Data);
p.WaitForExit ();
FWIW, вы можете рассмотреть возможность использования пользовательских задачдля MSBuild (т. е. Monu «xbuild») вместо NAnt, поскольку файлы проекта MonoDevelop являются файлами MSBuild, а MonoDevelop имеет интеграцию с xbuild.