4

Linqpadの別のアプリケーションドメインでコードを実行できません:


void Main()
{
AppDomain.CreateDomain("AD").DoCallBack(() => { Console.WriteLine("Test"); });
}

コードを実行するたびに、異なるファイルが見つからないという例外が発生します。

ファイルまたはアセンブリ'query_gclnfu、Version = 0.0.0.0、Culture = neutral、PublicKeyToken=null'またはその依存関係の1つを読み込めませんでした。

ファイルまたはアセンブリ'query_blixbs、Version = 0.0.0.0、Culture = neutral、PublicKeyToken=null'またはその依存関係の1つを読み込めませんでした。

私は無知です...

4

1 に答える 1

5

LINQPadは、単純なサンドボックスAPIを介してアプリドメインでコードを実行します。これは、AppDomain.CreateDomainを使用してドメインを作成すると、権限の問題が発生することを意味します。

LINQPadは、適切な権限とアセンブリ解決ハンドラーが設定されたアプリドメインを作成するためのヘルパーメソッドを提供します。

Util.CreateAppDomain ("AD").DoCallBack(() => { Console.WriteLine("Test"); });

これはエラーなしで実行されますが、新しいアプリドメインではコンソール出力がリダイレクトされないため、出力ウィンドウに「テスト」は表示されません。ただし、以下は機能します。

Util.CreateAppDomain ("AD").DoCallBack(() => MessageBox.Show ("test"));
于 2010-12-03T09:59:28.677 に答える