[Mono-dev] gacutil problem

Jonathan Pryor jonpryor at vt.edu
Wed Jan 11 07:44:09 EST 2006


On Tue, 2006-01-10 at 10:35 -0500, Joshua Tauberer wrote:
> Something about mcs not using the GAC to find assemblies, but only 
> looking at 'installed' packages with .pc files, or in 
> /usr/lib/mono/1.0/.  You could specify the full path, or use -L.
> 
> Could we reevaluate exactly why we avoid using the GAC at compile time? 
>   Lots of people have been confused by this behavior, I still don't 
> understand how looking in particular places besides the GAC is any 
> better than additionally looking in the particular place named the GAC. 
>   If the developer is concerned about the version of the assembly found, 
> he should be able to put the version in the /r option, and not rely on 
> the right version (and no other version) actually being 'installed'.

One word: Compatibility.  CSC.EXE wouldn't understand such a syntax, and
we cannot simulate such a syntax either.  At least with `mcs -pkg:pkg`
you can always use `CSC.EXE $(pkg-config --libs pkg)`, thus providing a
mental mapping from mcs to CSC.

Extending /r to do GAC lookups couldn't be simulated at all with CSC.

Extending /r would also be ugly-as-hell (the /r reference would require
the public key token and major.minor version at minimum), e.g. 

	mcs "/r:gtk-sharp, Version=1.0.0.0, Culture=neutral, PublicKeyToken=35e10195dab3c99f"

Imagine doing that for all your assembly references.  Blech!

IIRC NAnt also raised some issues with this approach.

See also:

http://lists.ximian.com/pipermail/mono-devel-list/2004-May/005294.html
http://lists.ximian.com/pipermail/mono-devel-list/2004-May/005227.html

(And probably more threads that I'm forgetting, this was discussed a
lot.)

 - Jon





More information about the Mono-devel-list mailing list