2007-10-19 Nagappan A <anagappan@novell.com>
[mono.git] / docs / assembly-bundle
index 25da5533370d98c099767c4ea6d7a451935e77a9..3e64e147cb140ae1190bfc28ac7a5b679baa6e4b 100644 (file)
@@ -1,42 +1,57 @@
 
-       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
+          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.
+