[Mono-list] Added dll to gac not being picked up

Jonathan Pryor jonpryor at vt.edu
Tue Aug 8 07:42:38 EDT 2006


On Tue, 2006-08-08 at 12:11 +0100, PFJ wrote:
> I've rewritten the spec file for db4o to now add the db4o.dll to gac
<snip/>
> The problem comes when I try to link to db4o. All I get back is that the
> db4o assembly cannot be found. I'm using 
> 
> mcs db4oexample.cs -r:db4o.dll (I've also tried Db4o.dll and not adding
> the -r:db4o)
> 
> Am I doing something wrong or is there a missing bit to the equation?

Both.  You can't use -r to reference assemblies within the GAC.

-r can only be used to reference: full path names, files in the current
directory, files in a directory specified by -L, and files in the same
directory as mcs.exe/gmcs.exe (which is how mscorlib.dll, System.dll,
etc. are found).

You need to create a pkg-config file with a Libs: statement adding -r:
references for files under %{buildroot}%{monodir}/db40, e.g.

	prefix=/usr

	Name: db4o
	Description: TODO
	Version: TODO
	Libs: -r:${libdir}/mono/db4o/db4o.dll

Then you can use -pkg:db40 on your mcs compile line to implicitly add
-r:/usr/lib/mono/db4o/db4o.dll to the mcs command line, which should
allow your code to properly compile.

You should investigate how Gtk# does things (which is what I described
above).

 - Jon




More information about the Mono-list mailing list