different behaviors of mixed-mode assembly under .net/wine-mono/native mono.

Hin-Tak Leung htl10 at users.sourceforge.net
Fri Aug 21 13:53:09 CDT 2015


Hi,

I am trying to look into a somewhat curious issue about
mixed mode assembly under wine-mono.

The application works correctly under wine + MS .net 2.

With native mono on the explicit command line, either win32
mono + wine, or x86_64 linux mono on x86_64 linux,
the win32 native constructor of a class
returns a null. That's fair enough.

But with wine-mono, the application does not behave
either like .net 2 or win32 mono on the command line.
It throws illegal IL code exception.

So I have a specific question - how do I go about finding
out how the IL code exception comes about?
(I have had a couple of patches in either camp so
I am not against patching wine or mono, or wine-mono for that matter) 

And a general question: are mixed mode assemblies supposed
to work under win32 mono at all, or wine-mono definitely needed?
I saw some wine + mono discussions a while ago and
I got the impression that mixed mode assemblies are supposed to
work with win32 mono somewhat?

The application itself is available as a public download in binary form.
But since it mostly works - correctly under .net, and even the
illegal IL exception was caught, just not the null constructor.
Editing the IL code to put a try+catch around the constructor
makes it largely operational too under linux mono, so there is
not much of a bug to file; mostly a curiosity why
wine-mono doesn't behave like it support mixed-mode fully, or
not at all, but something between.

Hin-Tak
 



More information about the wine-devel mailing list