无法加载文件或程序集

时间:2010-12-03 08:51:43

标签: .net linqpad

我无法在Linqpad中的另一个应用程序域中执行代码:


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

每次执行代码时,我都会得到一个不同的文件未找到异常

无法加载文件或程序集'query_gclnfu,Version = 0.0.0.0,Culture = neutral,PublicKeyToken = null'或其中一个依赖项。

无法加载文件或程序集'query_blixbs,Version = 0.0.0.0,Culture = neutral,PublicKeyToken = null'或其中一个依赖项。

我很无能......

1 个答案:

答案 0 :(得分:5)

LINQPad通过简单的沙盒API在应用程序域中运行您的代码,这意味着如果您使用AppDomain.CreateDomain创建域,则会遇到权限问题。

LINQPad提供了一个辅助方法来创建一个应用程序域,并设置了正确的权限和程序集解析处理程序:

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

虽然您不会在输出窗口中看到“测试”,但这将无错误地运行,因为新的应用程序域将不会重定向其控制台输出。不过,以下内容可行:

Util.CreateAppDomain ("AD").DoCallBack(() => MessageBox.Show ("test"));