カスタムAppDomainをアンロードした後、このAppDomain内にロードされたアセンブリ(ハードディスクから)を削除したいとします。 Assembly.Load(byte [])を使用してアセンブリをロードすることを提案するリソースが多数見つかりました。これを行うと、ファイルを削除することができますが、私のコードはこのロードされたアセンブリを使用しません。未処理のバイト配列を使用せずにAppDomainでアセンブリをアンロードする
基本的に私は、2つのアセンブリを持っている:A.DLLとB.DLL
A.DLLはB.DLLを参照し、B.DLLに呼び出すために望んでいます。
私のカスタムAppDomainでは、Assembly.LoadFrom経由でA.dllとB.dllの両方を読み込みます。次に、Aでメソッドを呼び出すと、ロードされたBに自動的に呼び出されます。
グローバルAppDomainでは、AとBの両方が既にロードされていますが、グローバルAppDomainにロードされたB.dllのバージョンはカスタムAppDomainでロードしたいものと同じではありません。 Assembly.LoadFromメソッドを使用
が呼び出しを行うAssembly.Load(バイト[])メソッドを使用してB
の正しいバージョンは、グローバルアプリケーションドメインにある呼Bのバージョンを作ります。
私が欲しいのは、A.dllをバイト[]としてロードし、Bが正しく参照するか、またはA.DllにAssembly.LoadFromをロードすることですが、AppDomainをアンロードした後に削除できます。
どのようにこれを達成するためのアイデアはありますか?
おかげで、 クリスチャン