Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'docs/assembly-bundle')
-rw-r--r--docs/assembly-bundle57
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.
+
+