[Mono-list] Getting mono path during runtime

Jonathan Pryor jonpryor at vt.edu
Thu Jan 11 18:09:35 EST 2007


On Thu, 2007-01-11 at 17:44 -0500, Miguel de Icaza wrote:
> Hello,
> 
> > I've scoured System.Reflection, but I'm probably in the wrong place.
> > Is there any way to get the path where mono is running from during
> > runtime?  Would I need to use environment variables, or is there a
> > dynamic way to find that out in my csharp code?
> 
> A Linux-only way of doing that would be to look at 
> 
> 	/proc/self/exe
> 
> Which is a symbolic link to the actual executable;   You can read the
> symlink using Mono.Posix.Native.readlink

Couldn't `typeof(int).Assembly.Location` (or some equivalent Assembly
property) be used?  This would get the path to mscorlib.dll, which could
be used to ascertain the installation $prefix, leading to the `mono'
executable.

Of course this could be foiled if `configure --bin-path=...` were  used
(so that it wasn't $prefix/bin), or if $prefix/lib/mono wasn't the GAC
location, but this would probably work 99% of the time...

 - Jon




More information about the Mono-list mailing list