That might be, but how do you then make a source-package of your program that compiles and installs successfully on the target distributions that don't have an up-to-date mono toolchain? Because while a developer might follow upstream, users shouldn't have to...
It's actually quite a bit worse than that. For instance, I successfully built and installed mono locally now, but am unable to run simple gtk-applications.
git clone git://github.com/mono/mono.git mono.git
cd mono.git
./autogen.sh --prefix=${HOME}/opt
make get-monolite-latest # Need mono to compile mono
make EXTERNAL_MCS="${PWD}/mcs/class/lib/monolite/gmcs.exe"
make install
export PKG_CONFIG_PATH=${HOME}/opt
I can now successfully compile and run a command-line hello world, but
a simple gtk-test (and winforms test) fail when attempting to run the
examples. This probably has someting to do with linking and assemblies,
but experimenting with PKG_CONFIG_PATH, GAC_PATH and MONO_PATH makes no
apparent difference...
cat <<eof > hello.cs
using System;
public class HelloWorld {
static public void Main () { Console.WriteLine ("Hello Mono World!"); } }
eof
mcs hello.cs
mono hello.exe
> Hello Mono World!
cat<<eof > hello-gtk.cs
using Gtk; using System;
class HelloWorld {
static void Main () {
Application.Init();
Window w = new Window("Hello Mono World!");
w.Show();
Application.Run(); }}
eof
mcs hello-gtk.cs -pkg:gtk-sharp-2.0
mono hello-gtk.exe
> Unhandled Exception:
System.IO.FileNotFoundException: Could not load file or
assembly 'gtk-sharp, (...)