| 123456789101112131415161718192021222324252627282930313233343536373839404142 |
- HOWTO bundle assemblies inside the mono runtime.
- Bundling assemblies inside the mono runtime may be useful for a number
- of reasons:
- * creating a standalone complete runtime that can be more easily
- distributed
- * having an application run against a known set of assemblies
- that has been tested
- Of course, there are drawbacks, too: if there has been fixes to the assemblies,
- replacing them means recompiling the runtime as well and if there are other mono apps,
- unless they use the same mono binary, there will be less opportunities for
- the operating system to optimize memory usage. So use this feature only
- when really needed.
- To bundle a set of assemblies, you need to create a file that lists the assembly
- names and the relative files. Empty lines and lines starting with # are ignored:
- == cut cut ==
- # Sample bundle template
- mscorlib: /path/to/mscorlib/assembly.dll
- myapp: /path/to/myapp.exe
- == cut cut ==
- Next you need to build the mono runtime using a special configure option:
- ./configure --with-bundle=/path/to/bundle/template
- The path to the template should be an absolute path.
- The script metadata/make-bundle.pl will take the specifie assemblies and embed
- them inside the runtime where the loading routines can find them before
- searching for them on disk.
- There are still two issues to solve:
- * config files: sometimes they are needed but they are not yet bundled
- inside the library ()
- * building with the included libgc makes it not possible to build a mono
- binary statically linked to libmono: this needs to be fixed to make bundles
- really useful
-
|