Hi
We have a .NET library (framework 4.6.2) which we call via COM from OI for various windows things. This library references our generic library called oryxbase (oryxbase.dll) and everything works very well.
I just created my first COM usercontrol for some 3rd party integration, which also references oryxbase (oryxbase.dll) which is a more recent version that same file used in the library I mentioned above.
The problem is that although these 2 components (which both reference oryxbase.dll) are located in seperate directories - within an application e.g. OI, by default, we can only reference the one dll as per:
* If a DLL with the same module name is already loaded in memory, the system uses the loaded DLL, no matter which directory it is in. The system does not search for the DLL. *
.. so it ends up loading whichever component (and therefore it's version of oryxbase) is called first. Using process explorer I can see the path of the dll that gets loaded. Is there a way in OI to reload an already referenced dll or perhaps remove it, so that it will reload during a subsequent reference from OI?
p.s. the current workaround is to reference my usercontrol before any methods are called from oryxrevfunctions so that the more up to date version of oryxbase.dll gets loaded into OI, but this obviously isn't ideal.
*somehow* my latest update removed both my response and carl's message too… all I did was "Save"
Anyway my message said that I'd figured unloading was a longshot.
Also, I tried using the Costura assembly, which combines all the other dll references in the primary output (exe or dll) and it does do this quite easily. Alas it would not let me register the dll afterwards though.
The workaround is to simply load my usercontrol first, but this isn't idea either of course.