[Mono-list] "mscorlib.dll is an invalid CIL image"

Jonathan Pryor jonpryor at vt.edu
Tue Apr 28 21:40:35 EDT 2009


On Tue, 2009-04-28 at 18:01 -0700, Chris Plasun wrote:
> So the Mono build **does** create a MSCORLIB.DLL?

Yes.  The Mono build creates every assembly listed in mcs/class, e.g.
mscorlib.dll, System.dll, System.Core.dll, System.Web.dll, etc.

> I understand that the  *.dll/*.exe files are platform independent, but are 
> they **architecture** independent? I'm using PowerPC.

Yes.

> It looks like some of the paths are messed up as I can't run monodis
> on the board. I'll have to fix that first.
> 
> Monodis on SUSE doesn't report any mscorlib.dll corruption...
> 
> I think I need to learn how to cross-build Mono myself, no?
> 
> The build I have for this board doesn't have mscorlib.dll so I'm using 
> the SUSE one; that's not doable?

This was discussed by Rodrigo: mscorlib.dll is tied to the runtime.  You
can't mix and match it across Mono versions.

So what you _can_ do is build e.g. Mono 2.4 on openSUSE, Mono 2.4 on
Linux/PPC, and copy the mscorlib.dll from your openSUSE build to
Linux/PPC, but you cannot e.g. take an mscorlib.dll from Mono 2.0
(openSUSE packaged version) and run it against a Mono 2.4 runtime.  The
versions *must* be the same (and this is checked at program startup).

I am wondering how you built and installed on Linux/PPC, as if you
followed the normal build/install process you should have built (and
installed) mscorlib.dll, which apparently you don't have.

Did you configure your PPC/Linux Mono with --disable-mcs-build?  (That
prevents the assemblies from being built -- very useful for CPU-limited
platforms like ARM where building all assemblies would take an
eternity.)

 - Jon




More information about the Mono-list mailing list