[Mono-dev] Application deployment questions
robertj at gmx.net
Thu Aug 24 04:50:26 EDT 2006
> Hi everyone,
> I have read this article though sill not quite understand how to do it.
> The normal way to run an application compiled with Mono would be to invoke
> it through the Mono runtime, like this: mono myprogram.exe
> However, I have to deploy my application to end users that are not supposed
> to have Mono runtime/libs installed.
> What's the best practice for deployment?
> I'm planning on packing my application EXE with required DLLs such as
> intl.dll, libglib-2.0-0.dll, mono-1.dll, etc., and the mono.exe.
> Is it a feasible way to do?
All *.dlls from Mono's bin folder are needed, unless you
can prove that your app doesn't touch one of them.
You should build the following hierarchy:
yourapp\etc\mono\ copied from $monoprefix\etc\mono
yourapp\lib\mono\ copied from $monoprefix\lib\mono
> Would it be a better way if I embed Mono runtime(mono.exe) in my
Not w/out duplicating mkbundle's work.
> In addition, I checked out mkbundle.exe to realize that it is for Linux only
> that is unable to use it for Win32 or MacOSX.
Mkbundle as of Mono 1.1.14 works in Windows.
Under MacOS just some settings are missing. Use the following
export PKG_CONFIG_PATH DYLD_LIBRARY_PATH
> Second question:
> While Mono.exe startup, it would search '\mono\2.0\' path for 'mscorlib.dll'
> even if I write code such as: mono_set_dirs("", "") to change its search
> I tried to place 'mscorlib.dll' in the same directory with my application
> EXE but it's not worked and the assembly can't be found.
> How could I do it right?
With mono_set_dirs("", "") you'd need the following directory
The contents of "mono" must be built by copying (recursive) the
contents of the following folders:
It would be much saner from maintainer's point of view
to build this hierarchy:
etc\mono <- copied from $monoprefix\etc\mono
lib\mono <- copied from $monoprefix\lib\mono
and call mono_set_dirs("lib", "etc");
You should make "lib" and "etc" absolute.
More information about the Mono-devel-list