[Mono-devel-list] GAC (design) issues
Miguel de Icaza
miguel at novell.com
Sat May 1 12:07:56 EDT 2004
First of all.
Let me start by saying that -we- the Mono team have relatively
little experience with the GAC, and we have implemented it because:
* Versioning issues (keeping 1.1, 2.0, x.0 APIs in parallel).
* Foundation for security-related features.
But our background is not as complete as those of you who have been
using .NET with the real GAC. I think that we have a key advantage
which is that we are entirely fresh to this, and we come from a Unix
background where some of the *other* problems that the GAC solves are
non-existent, so we are looking at things slightly differently.
For instance:
* I believe the GAC `refcounting' stuff is completely redundant
and pointless in Unix. If you depend on this, you should be
fixing your assumptions about Unix-deployment and
package-based deployments.
* If we can make Mono and C# compiler to work with the GAC
without having two copies of the assemblies, that is a plus.
* We can not use a "central location" to register where
assemblies are installed. In Unix this is traditionally done
with an environment variable.
We do not support more than one GAC right now (heh ;-), but
we are seriously considering adding support for this, to
allow developers to develop stuff without touching the system
one.
With the above in mind, we can have a better debate over these
issues.
> But what about non-system assemblies like nunit.framework.dll,
> NDoc.Core.dll, ICSharpCode.SharpCvsLib.dll, ICSharpCode.SharpZipLib.dll
> which come strong-named and in different versions? Are you prepared to type
> (actually copy/paste, because you have no chance to remember it) the full
> name including the public key token and exact version number?
Ideally, we would merge the files, and ship a single unified front.
Now, if you have *multiple* installations of the same beast, you will
have to reference them with a version, and if the version is the same
(quite unlikely) you will have to use the pubtoken.
The good news is that cut and paste is a fairly advanced technology, and
is available in most operating systems we support today :-)
Miguel
More information about the Mono-devel-list
mailing list