[Mono-list] Which distribution is used when...

murthy.sudarshan murthy.sudarshan at gmail.com
Sun Oct 14 10:56:22 EDT 2007

Thanks Jonathan for the clarification. That explains which version of the
runtime is chosen.

At this point, my original question about which *distribution* of the
runtime is used--Mono or Microsoft-- still remains.

Assume I run a .NET application under each of the following conditions,
using the Mono command prompt on Windows. Assume the simplest, default,
installation of Mono and MS distributions of .NET.

1. Using the Mono CLR. That is, run "mono <app.exe>" where <app.exe> is the
.NET application.
- I assume the libraries in the Mono distribution are used.

2. Using the Microsoft CLR. That is, run "<app.exe>".
- I assume the libraries in the MS distribution are used.


-----Original Message-----
From: mono-list-bounces at lists.ximian.com
[mailto:mono-list-bounces at lists.ximian.com] On Behalf Of Jonathan Pryor
Sent: Saturday, October 13, 2007 12:47 PM
To: murthy.sudarshan
Cc: mono-list at lists.ximian.com
Subject: Re: [Mono-list] Which distribution is used when...

On Fri, 2007-10-12 at 13:12 -0700, Charlie Poole wrote:
> use  --runtime=VERSION to select the runtime
> for example, to run under the 2.0 profile, specify
>   --runtime=v2.0.50727
> The weird argument format is inherited from .NET, which uses it in the 
> COMPLUS_VERSION environment variable.

If you don't specify --runtime, you get whichever runtime the program was
compiled against -- if you use mcs or CSC from .NET 1.0, you'll implicitly
get a 1.0 runtime, and if you use gmcs or CSC from .NET 2.0, you'll
implicitly get a 2.0 runtime.

Mono's --runtime argument is largely to allow you to override the default
specified in the assembly header.

.NET also uses the program header to determine which runtime to use -- if
you have *both* .NET 1.0 and .NET 2.0 installed, then the assembly header
will be read to determine which runtime to use.  If you only have one
version of .NET installed, then that version will be used to run your app,
which *can* result in an exception (e.g. running a 2.0 app under a 1.0
runtime won't work) or in imperfect compatibility (e.g. running a 1.0 app
under a 2.0 runtime, as the behavior of some methods changed).

 - Jon

Mono-list maillist  -  Mono-list at lists.ximian.com

More information about the Mono-list mailing list