Ant: Re: Ant: Re: Ant: Re: Ant: Re: [Gtk-sharp-list] gtk-sharp.dll not working on linux because it references win32 dll's

Jost Boekemeier jostb2345 at
Wed Jul 20 12:27:34 EDT 2005


> > Why do I need that?  I want to load the library
> that
> > the user has placed into his lib directory. 

> For any assembly, if you want to load it from the
> GAC 

Why it this information necessary?  The user has given
me the name of the library and I have to load the most
recent version.  This worked fine in gtk-sharp 0.6. 
Why do I have to care if you have or have not decided
to declare the library as API stable?

> fully-qualified assembly name (name, version,
> culture, public key
> token).  Otherwise, you can just place your assembly
> into the
> appropriate directory and just Assembly.Load() the
> name.

What I have is the library name.  The user says that
he installed the libraries in /usr/local/lib and he
verified that they are installed in
/usr/local/lib/mono/gth-sharp-2.  Now I have to load
it, whether it is version 0.6 or 20.0, I don't care.

The problem is, that loading the library works on
windows, but not on Linux.

> Thus the question: how are you using, shipping, and
> installing Gtk#?

I don't.  The user has installed the library with make
install.  If he loads
/usr/local/lib/mono/gtk-sharp-2/gtk-sharp.dll, he get
an exception saying that a windows library is missing.

> Are you using the one included with Mono?  Then it's
> in the GAC.

Again, I don't do anything.  I just have to load the
library.  Are you saying that since gtk-sharp 1.0 it
is no longer possible to load a Linux library without
knowing its hash code?  Okay, your decision, but why
does the install script install the libraries in
/usr/local/lib/mono/gtk-sharp2 then?

> Are you copying the Gtk# assemblies into your
> applications directory?
> Then an Assembly.Load() will work.

Hrm.  As I said, not on linux because the .config
files are missing.  Copying the config files from the
build directory into the application directory solves
the problem, but a) why do I have to do this, b) why
only on linux, c) why are these config files necessary
at all, they contain information which shall never be
changed, this information should go into the library
itself, not into a user visible config file.

> > Depends on how you do it.  I think it should be
> > possible to check the platform, load the real dll
> once
> > and then this dll takes over.
> I know of no way to do that.  

Okay.  I thought that if the dynamic loader has the
ability to patch a library when it is loaded one could
as well check for the architecture and then load the
byte code from the appropriate file or section.

> > As I understand it, a linux user must place a
> dll/map
> > pair into his library directory, while the windows
> > user can simply copy the gtk-sharp dll's, right?
> The user shouldn't need to worry about assemblies

He needs to, simply because he wants to load one.

> Those are a development and deployment
> issues, handled by the
> developer and packager.

I am sorry, I don't understand this at all.

Jost Boekemeier


Gesendet von Yahoo! Mail - Jetzt mit 1GB Speicher kostenlos - Hier anmelden:

More information about the Gtk-sharp-list mailing list