[Mono-list] Mono 2.0 issues in Ubuntu - where is the problem and how will it be fixed?

IBBoard ibboard at gmail.com
Thu May 10 19:41:56 UTC 2012


It appears there is a problem with running older .Net apps on the latest 
versions of Ubuntu. If you compile for .Net 2.0 (perhaps because that is 
your lowest common denominator, because you are working cross-platform 
and you know some people will still be using WinXP without the huge .Net 
3/3.5/4 updates) and run it on Ubuntu then you currently get an instant 
crash with a message like "Missing method 
System.Type::op_Inequality(Type,Type) in assembly 
/usr/lib/mono/2.0/mscorlib.dll, referenced in assembly 
/usr/lib/mono/gac/gtk-sharp/2.12.0.0__35e10195dab3c99f/gtk-sharp.dll"

It looks like this problem is quite prevalent and problematic 
(https://bugs.launchpad.net/ubuntu/+source/mono/+bug/882501, 
http://stackoverflow.com/questions/10473868/mono-gtk-hello-world-failing-missing-method, 
and the rest of Google). The two fixes people have are "recompile" (only 
an option if you're *only* targeting Ubuntu and want to use v4.0) or 
"add the --runtime=v4.0 switch" to force a 2.0 app to run as 4.0.

Based on the assembly mentioned in error and what I've picked up online, 
am I right in understanding that this is a purely Ubuntu-caused problem 
because GTK# is now build with the .Net 4.0-compatible compiler? Is 
there any way they can fix this, or are we stuck with it? And are there 
any sensible and non-hackish ways to work around this in the meantime?

I'm working on my own Bash wrapper at the moment to fix this only when 
necessary 
(http://dev.ibboard.co.uk/repos/IBDev-IBBoard.WarFoundry.GUI.GTK/files/tip/WarFoundry.sh) 
but I'm sure there must be better ways to do it.

Thanks.


More information about the Mono-list mailing list