[Mono-devel-list] MONO_PATH versus GAC problem in DLLImport resolution was keeping me from running GTK# apps in mono

Rafael Teixeira monoman at gmail.com
Thu Nov 4 14:13:15 EST 2004


Well, it seemed like the runtime was not respecting dll config files
so that this gtk-sharp.dll.config file was being ignored

<configuration>
  <dllmap dll="libglib-2.0-0.dll" target="libglib-2.0.so.0"/>
  <dllmap dll="libgobject-2.0-0.dll" target="libgobject-2.0.so.0"/>
  <dllmap dll="libatk-1.0-0.dll" target="libatk-1.0.so.0"/>
  <dllmap dll="libgtk-win32-2.0-0.dll" target="libgtk-x11-2.0.so.0"/>
</configuration>

it is located in the gac beside the dll proper as installed by gtk#.

Setting 
[rafael at redhat9 samples]$ export MONO_LOG_LEVEL=debug
[rafael at redhat9 samples]$ export MONO_LOG_MASK=dll,cfg

[rafael at redhat9 samples]$ mono alomundo-gtk-boo.exe
...
Mono-INFO: Config attempting to parse:
'/usr/lib/mono/gtk-sharp/gtk-sharp.dll.config'.
...

that was the key to find the culprit:

My MONO_PATH contained the /usr/lib/mono/gtk-sharp, and so it was
finding the symbolic link to the assembly that gacutil leaves there
and was trying to read the config file from there. Just shortened my
MONO_PATH and all went well.

Nevertheless this interaction between MONO_PATH and GAC is somewhat to
be aware of.

I was using MONO_PATH to easy command lines like

mcs -r:gtk-sharp alomundo-cs.cs

Yeah I know about the -pkg: option for mcs, and I implemented it for
mbas, but boo compiler (booc) still doesn't have one, so the backtick
trick will be needed to escape this trap for some more type.

booc `pkg-config --libs gtk-sharp` alomundo-gtk-boo.boo

Hope this information helps someone else, too
-- 
Rafael "Monoman" Teixeira
---------------------------------------
Just the 'crazy' me in a sane world, or would it be the reverse? I dunno...



More information about the Mono-devel-list mailing list