[Mono-dev] PATCH: Make Process.Start() use the same 'mono' runtime

Miguel de Icaza miguel at novell.com
Mon Jun 4 16:18:56 EDT 2007

Hello Jonathan,

> A long time ago, I ran into the issue where Process.Start within mono
> doesn't do what is expected. On Windows, it always runs the child process
> with Microsoft's framework, which can cause problems if it is remoting back
> to the parent process and hits an incompatibility. On other platforms, it
> is even worse: The Process.Start call simply does nothing, since the host
> operating system does not recognize the PECOFF/CLR binary format.

This is fantastic!   I just was running into that problem over the

> Recently, I saw someone else having the same issue and decided it was
> finally time to do something about it (actually in my opinion it was time
> to do something about it a long time ago). I have created a patch to enable
> mono to find itself and call the child process with the same 'mono'
> interpreter if it is a CLR EXE file. I implemented it by means of an
> environment variable. While this may seem strange, I think it is the most
> logical choice. I have enumerated the advantages and disadvantages that I see:

I rather not use the environment variable, for one computing the actual
program name might not be easy.   I rather just hard code it to `mono'
and it would be up to the user to set the path name appropriately.

I can not think of production uses where I would like to be using
different kind of Monos to run different applications, other than
testing (and it seems like setting this at startup would defeat that
purpose except for embedding).


More information about the Mono-devel-list mailing list