[Mono-dev] What directories/files needed to distribute a mono runtime from a build?

CodeSlinger dkolb at emdeon.com
Mon Dec 27 23:53:31 EST 2010


I've basically asked this before, so sorry for the repost, but my other
thread got garbled when I had to delete posts in order to keep from getting
continuous warnings about not being approved even though I had registered
after posting them.

Basically I want just a minimal runtime or even the whole runtime but
nothing else from the build. It was essentially suggested to "just delete
what you don't need" which is sort of like telling someone wanting a wooden
bear to just get a log and cut away the parts that don't look like a bear
(ya I live in the mountains and there are a lot of wooden bear wood carvers
here and I'm not one of them).

After custom building 2.8.1 on my RHEL45 system, my /usr/mono directory is
1.2G and I would like to zip a fairly minimal runtime for deployment to
other boxes. According to the doc on assembly search order, all needed dlls
are supposedly in the GAC but that is obviously not the whole story since
mscorlib.dll is in the /usr/mono/lib/mono/4.0 directory. And in the GAC
there are 2.0 and 4.0 components under the component type rather than under
the version so it is harder to distribute just once version such as 4.0.

So anyway, I might then think all I needed was (prefix=/usr/mono) -

/usr/mono/bin - for the mono program
/usr/mono/lib/mono/gac - for all the 4.0 system assemblies except my own and
3rd party
/usr/mono/lib/mono/4.0 - for mscorlib.dll

and that should be sufficient to run my command line mono app.

Is it? I did not delete several /usr/mono directories to test that theory.
To run a command line 4.0 app, do I need anything besides the above 3
directories?

Also, someone suggested just ship what is referenced by my pgm which makes
sense but for example, mscorlib.dll is not referenced in my VS2010 built
project (in fact I deleted ALL references in the VS2010 references section)
yet mscorlib.dll is in fact needed and is NOT in the GAC but rather found in
/usr/mono/lib/mono/4.0.

I could experiment, and delete files and directories to see what works and
what does not but I think a true need would be served by having some script
or whatever package up a runtime either based on your exe or on general
requirements, or even just ALL of the runtime would be better than
distributing all of the 1.2G of files including source, compilers etc.
resulting from the build.

All suggestions appreciated. Maybe this is not a problem for some but I have
to think there are other developers in the same boat as myself not wanting
to cut away all the parts that don't look like a runtime.

Thanks, Dave
-- 
View this message in context: http://mono.1490590.n4.nabble.com/What-directories-files-needed-to-distribute-a-mono-runtime-from-a-build-tp3165696p3165696.html
Sent from the Mono - Dev mailing list archive at Nabble.com.


More information about the Mono-devel-list mailing list