diff options
Diffstat (limited to 'docs/assembly-bundle')
-rw-r--r-- | docs/assembly-bundle | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/docs/assembly-bundle b/docs/assembly-bundle new file mode 100644 index 00000000000..3e64e147cb1 --- /dev/null +++ b/docs/assembly-bundle @@ -0,0 +1,57 @@ + + HOWTO bundle assemblies inside the mono runtime. + Paolo Molaro (lupus@ximian.com) + +* Intent + + 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. + +* Creating the Bundle + + 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. + +* Open Issues + + 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. + + |