Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Showing
4 changed files
with
113 additions
and
72 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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. | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters