[Mono-devel-list] Re: Potential GAC implementation ideas.

Todd Berman tberman at gentoo.org
Fri Oct 24 09:28:10 EDT 2003


Just as a small RPM aside, out of curiosity, lets say that I have a shared
assembly called 'MySuperLib.dll' that 3 packages I create use, and to make
sure there are no unsatisfied dependencies, they all packaged it.

I go ahead and install all 3 directly into the gac, now, when I later remove
one, is the lib I installed directly into the gac because it is part of the
package list for that rpm? If so, packaging libraries this way is horribly
broken. If not, then it seems like it might work.

And to address this question about the 'need' for the gacutil.exe, well, to
me, we are attempting to create a workalike to .net. Now, .net has a
gacutil.exe which they use to install assemblies into the gac, so that is
part of the workalike.

In fact, .net has 2 main ways of installing something into the gac:

1) gacutil.exe (not recommended, requires the .net framework sdk)
2) Windows Installer (recommended, no requirement on the .net framework, and
if somehow the assembly gets removed, and an app needs it, if you have the
.msi around it will get inserted automagically.)

Now, until inserting an assembly into the GAC becomes a first class member
of the RPM/DEB/etc world, the gacutil.exe is really the only 'proper' way of
doing it.

As I have said before, please understand that most libraries don't need to
be in the GAC, and if, as a packager you want to use it out of conveniences
sake, I would recommend actually creating a shell script to run the .exe
(akin to the mcs script) that sets MONO_PATH to where you installed your
packages private libraries.

--Todd




More information about the Mono-devel-list mailing list