I'm not sure that I entirely understand your question, but I'll try to answer:
While trying to solve this, we should remember the following:
- Fusion doesn't kick in (and thus dependency resolution), until you are in a stack frame, where the first appearance of the unresolved type is located.
- We can assume that the CLR is already loaded in the host process, and we have at least one Appdomain. (Otherwise, you have to think about both scenarios - especially being consumed by a process, which doesn't load CLR by default. What do you want to do in such case? Load CLR yourself? Implicitly? Explicitly? If so, how do you configure your Appdomain? Where is your App Root? What are your probing paths?)
Given these two points, you can subscribe to AppDomain.AssemblyResolve Event. But you should refactor your code in such a manner, so fusion doesn't try to resolve your assemblies before you've managed to subscribe. In the handler, handle only the events in which YOUR assemblies are being resolved, and load them from any location you want - for example, from the same path, in which your native library resides.
Additional reading: