[Mono-devel-list] Proposal: Library Loading

Jonathan Gilbert 2a5gjx302 at sneakemail.com
Wed Apr 14 23:36:25 EDT 2004


At 04:37 PM 13/04/2004 -1000, you wrote:
>Vladimir Vukicevic wrote:
>>I like this, but then you lose the ability for the libfoo provider to
>>ship the mapping with the library package, because they're not going to
>>want to have to track which app is using which version.  The app itself
>>also can't install its own entry unless we use some sort of helper tools
>>for apps to register/unregister themselves, so we're back to the user
>>manually putting in these strings into the magic file.
>In this example, libfoo is an unmanaged library, so libfoo won't be 
>distributing a DLL mapping at all. It seems to me that the scenario the 
>conf.d/version scheme is trying to solve is the problem of multiple 
>assemblies each doing their own DllImport. So in this case, each 
>assembly would install a mapping for itself.
>
>The installation problem is solved by the method proposed by Tom to make 
>the filenames insignificant. Special tools would not be needed for 
>register/unregister for the assembly-specific mappings, because it is 
>just a matter of dropping a file into the conf.d directory.

It seems to me there is an even better solution: put the mapping file into
the same directory as the assembly that needs it. Then, there is no chance
of filename conflicts. There is already App.exe.config; perhaps a custom
section could be added that Microsoft's code would ignore but which Mono's
code would use to determine the correct version to load? If this isn't
practical, then a separate file could be used -- App.exe.libmap? Obviously,
Microsoft's code would completely ignore this file.

Jonathan



More information about the Mono-devel-list mailing list