Lucifer wrote: > Hi everyone, > > I have read this article though sill not quite understand how to do it. > http://www.mono-project.com/Guidelines:Application_Deployment > > 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\ yourapp\bin\yourapp.exe yourapp\bin\mono.exe yourapp\bin\*.dll 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 > application? Not w/out duplicating mkbundle's work. > http://www.mono-project.com/Embedding_Mono > 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 shell script: ---cut-here--- #!/bin/bash PKG_CONFIG_PATH=/Library/Frameworks/Mono.framework/Libraries/pkgconfig DYLD_LIBRARY_PATH=/Library/Frameworks/Mono.framework/Libraries export PKG_CONFIG_PATH DYLD_LIBRARY_PATH mkbundle $* ---cut-here--- > 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 > path. > 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 structure: yourapp.exe mono\ The contents of "mono" must be built by copying (recursive) the contents of the following folders: $monoprefix\etc\mono\* $monoprefix\lib\mono\* It would be much saner from maintainer's point of view to build this hierarchy: yourapp.exe 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. Robert _______________________________________________ Mono-devel-list mailing list Mono-devel-list@lists.ximian.com http://lists.ximian.com/mailman/listinfo/mono-devel-list