Mef 経由で特定の (拡張可能な) 機能をロードするアプリケーションがあります。これらのモジュールはサード パーティのコントロール (Telerik) を使用する可能性があるため、(前述のコントロールを使用してフォームを開いたときに) ユーザーが認識する読み込み時間を最小限に抑えたいので、これらの Mef モジュールが参照するアセンブリをプリロードしたいと考えています。
私がやっていることは、Assembly.GetReferencedAssemblies(..) メソッドを使用して、Mef モジュールごとに参照アセンブリの名前を取得し、それらを Assembly.Load(..) しようとすることです。
モジュールはファイルシステムの「どこかに」配置されているため (通常、ExecutingAssembly のパスとは異なります)、Gac にないこれらの Mef モジュールの参照のロードは失敗します。
AppDomain.CurrentDomain のアセンブリ ロード パスを変更する方法はありますか? AppDomain.AssemblyLoad イベントについては知っていますが、各モジュールが異なるディレクトリに存在する可能性があるため、これを利用するのはやや面倒です。