A: 

Here's how .Net finds the assemblies that are needed: http://msdn.microsoft.com/en-us/library/yx7xezcf(VS.71).aspx

Step 4 is what might be interesting for you to read: http://msdn.microsoft.com/en-us/library/15hyw9x3(VS.71).aspx

Gerrie Schenck
I've read those links before, but haven't found an answer to how the runtime finds an assembly which is not under ApplicationBase branch - like [Common] in my example.
aoven
A: 

Have you considered using GACutil to add your shared assemblies to the Global Assembly Cache

Rowland Shaw
No. As I understand it, GAC is intended for shared assemblies. As in "those used by multiple apps". My assemblies aren't shared by other apps - they are private to installation of my app (be it Client part, Server part or, in rare cases, both).
aoven
A: 

AFAIK the only solution is to have at least "stub" exes in MyAppBase and then define subdirectories as sources for DLL's in app.config for each application.

NTFS does support "mounting" other directories (ie. hard links) as subdirectories, but they're very unautomatic and since I've not tried going that way except theoretizing, I can't tell if that would work as a hack.

Pasi Savolainen
A: 

Maybe the Common folder was specified as a binpath parameter when it was compiled?

(See Probing the Private binpath)

http://msdn.microsoft.com/en-us/library/15hyw9x3%28VS.71%29.aspx

-Matt

Matt Frear