最简单的 AppDomain 和 FileNotFound 异常

Posted

技术标签:

【中文标题】最简单的 AppDomain 和 FileNotFound 异常【英文标题】:Simplest AppDomain and FileNotFound exception 【发布时间】:2013-05-24 09:15:33 【问题描述】:

我写了一个简单的行来创建单独的 AppDomain,但是得到了 FileNotFound 的奇怪异常:无法加载文件或程序集...考虑到必要的参数已填充,这个问题让我很困惑:

AppDomainSetup setup = new AppDomainSetup();
setup.ApplicationBase = Assembly.GetExecutingAssembly().CodeBase;
Evidence evidence = new Evidence(AppDomain.CurrentDomain.Evidence);
evidence.AddAssembly(Assembly.GetExecutingAssembly().FullName);
evidence.AddHost(new Zone(SecurityZone.MyComputer));
AppDomain hostedAppDomain = AppDomain.CreateDomain("Demo", evidence, setup);                   
hostedAppDomain.AssemblyResolve += new ResolveEventHandler(hostedAppDomain_AssemblyResolve);   **// Exception in this line**

【问题讨论】:

在 ASp.net ot WinForm .?那么缺少哪个 Assemlby 。? 简单的 c# dll。试着想象一下——缺少的 dll 是在 Assembly.GetExecutingAssembly().FullName 中声明的。 你能告诉我错误在哪一行。/ 最后一行。请仔细看代码,不要问愚蠢的问题。 【参考方案1】:

想通了..需要改变

setup.ApplicationBase = Assembly.GetExecutingAssembly().CodeBase;

setup.ApplicationBase = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);

【讨论】:

以上是关于最简单的 AppDomain 和 FileNotFound 异常的主要内容,如果未能解决你的问题,请参考以下文章

C#中AppDomain的使用

进程和 AppDomain 加载/卸载

使用 JointCode.Shuttle 进行跨 AppDomain 通信的一个简单示例

JointCode.Shuttle,一个简单高效的跨 AppDomain 通信的服务框架

一个appdomain可以限制在一个目录吗?

受限 AppDomain 中的 C# 类继承自位于主 AppDomain 中的其他类