a575963da9
Former-commit-id: da6be194a6b1221998fc28233f2503bd61dd9d14
58 lines
1.7 KiB
Plaintext
58 lines
1.7 KiB
Plaintext
|
|
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.
|
|
|
|
|