C#: How to change search directory for dependencies of dynamically loaded assemblies within a dynamically loaded assembly?

This is convoluted, but here goes:

For integration with another application (in a separate directory), we are dynamically loading one of its assemblies, then using Activator to instantiate an object from that assembly. The target assembly loads fine, but when creating an instance of the object, it attempts to dynamically load some additional dependencies and fails because it finds a newer version of them in our app dir:

because it's dependent on an older version of an assembly (which it does have in its directory) but it's finding a newer one in our app directory first and complains about it being the wrong signature.

I tried setting Environment.CurrentDirectory first, but it didn't make any difference.

What this will do is cause any assemblies that are loaded in your program built to reference any version of the Common.Logging.dll library between 0.0.0.0 and 3.2.0.0 to just use 3.2.0.0 instead of the version they where built with.

Email codedump link for C#: How to change search directory for dependencies of dynamically loaded assemblies within a dynamically loaded assembly?