4

プラグイン可能なコードを実行するためにいくつかの個別のAppDomainを作成している.NETアプリケーションがあります。各AppDomainは、中央アプリケーションと通信するために独自のWCF名前付きパイプサービスをセットアップします。

ただし、AppDomainごとに異なる作業ディレクトリを設定して、相対パスのベースフォルダーがアプリドメインごとに異なるようにします。したがって、これらのプラグインは、「。/ MyCustomFolder」に移動することにより、通常のすべてのファイル処理方法で独自のフォルダー構造を作成できます。

残念ながら、Directory.SetWorkingDirectory()がプロセス全体(単一のアプリドメインに分離されていない)に設定していることがわかりました。これにより、一部のプラグインが他のプラグインディレクトリに書き込みます。

異なるAppDomainの作業ディレクトリを変更することは可能ですか、それとも私が求めていることを実行するためにまったく新しいプロセスを開始する必要がありますか?親/子プロセスを安定した方法で効果的に管理しようとすることについてのあなたの意見は何ですか?

4

1 に答える 1

1

CurrentDirectory(またはWorkingDirectory)はプロセスごとです。

ただし、appdomainを作成するときに、アセンブリプローブパスを設定できます。AppDomainSetupクラスを見てください。

于 2011-01-20T06:31:52.713 に答える