Assemblyの動的ロード

アプリケーションディレクトリ
    |-App.exe (アプリケーション本体)
    |-dlls
       |-Hoge
           |-Hoge.dll(App.exeからロードされるアセンブリ)
           |-Util.dll(Hoge.dllが参照しているアセンブリ)

App.exe.configで,dllsディレクトリをプロービング対象に追加しておきます.


普通に

Assembly asm = Assembly.Load("Hoge");  // もしくはFullNameを指定

とすれば,Hoge.dll のロードには成功しますが,Hoge.dll 内のクラスが Util.dll を利用しようとした段階でFileNotFoundException が throw されてしまいます.


想定しているシチュエーションは,App.exe は Hoge.dll のことしか知らない,という状態です.
App.exeとしては,「Util.dllをくれ」といわれても,どこからロードすればよいのかわからない,ということなのでしょう(Util.dllの解決時に,Hogeディレクトリ以下はプロービング対象にならない).

アプリケーション構成ファイルに,privatePathを追加すればロードできるようになるのですが,アセンブリを追加するたびにパスも追加する,というのは避けたいところです.

全てのアセンブリをごちゃ混ぜにして(Hogeディレクトリをなくして),dllsに配置するしかないのでしょうか?