You know when we probe an assembly foo, we first probe the appbase for foo.dll/exe, then appbase\foo\foo.dll/exe.

The reason we probe for appbase\foo\foo.dll, is for multi-module assembiles.

Say you have assemblies foo1 and foo2. Both have a module called bar.dll. You can't put foo1 and foo2 in the same directory, since their module bar.dll will overwrite each other.

But you can put them in appbase\foo1, and appbase\foo2, problem solved.