1

Environment.CurrentDirectory のディレクトリ スワップ メソッドを利用するクラスがあります。コードは次のようになります。

 var str = Environment.CurrentDirectory;
 Environment.CurrentDirectory = Path.GetDirectoryName(pathToAssembly);
 var assembly = Assembly.Load(Path.GetFileNameWithoutExtension(pathToAssembly));
 Environment.CurrentDirectory = str;

以前の投稿と同様に、このディレクトリ切り替え方法を使用して、指定されたアセンブリ、参照アセンブリ、およびアンマネージ アセンブリを読み込むことができます。私が抱えている問題は、この関数が 2 つの別々の AppDomains で実行されていることです。AppDomain A (私が作成した AppDomain) では、コードは正常に動作します。AppDomain B (デフォルトの AppDomain) では、FileNotFoundException がスローされます。両方の呼び出しで、同じアセンブリを読み込もうとしています。なぜこれが当てはまるのか、手がかりはありますか?

4

1 に答える 1

1

この投稿は、プライマリ AppDomain の検索パスがロードされると変更できないことを示唆しており、構成ファイルで設定する必要があります。プライマリ AppDomain で実行しないでください。」

于 2008-09-26T20:04:00.350 に答える