Problem:
There is a process that had loaded a .NET DLL(say foo.dll) when the process start up. In another folder(say FooFolder), I got an exactly same foo.dll (same name, same version and same public token). I know if I use Assembly.LoadFrom() to load the FoolFolder/foo.dll, the FoolFolder/foo.dll will not be loaded by loader and there is only one foo.dll in the current domain.
However if I use Assembly.LoadFile() to load FoolFolder/foo.dll, the DLL was loaded successfully, but when I try to execute the code in FoolFolder/foo.dll, I will get exception of could not load "log4net.dll". (foo.dll reference the log4net.dll).
Question:
Is there any approach to load exactly same DLL in one app domain successfully? or it is impossible in .NET platform?