我无法在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'或其中一个依赖项。
我很无能......
答案 0 :(得分:5)
LINQPad通过简单的沙盒API在应用程序域中运行您的代码,这意味着如果您使用AppDomain.CreateDomain创建域,则会遇到权限问题。
LINQPad提供了一个辅助方法来创建一个应用程序域,并设置了正确的权限和程序集解析处理程序:
Util.CreateAppDomain ("AD").DoCallBack(() => { Console.WriteLine("Test"); });
虽然您不会在输出窗口中看到“测试”,但这将无错误地运行,因为新的应用程序域将不会重定向其控制台输出。不过,以下内容可行:
Util.CreateAppDomain ("AD").DoCallBack(() => MessageBox.Show ("test"));