我创建了一个新的应用程序域并将我的程序集加载到其中。
Assembly assembly = dom.Load("bookOne");
一切顺利。应用程序使用资源字典等,但当我尝试使用此代码卸载dll释放内存时,我的应用程序关闭,没有任何错误或警告:
try
{
AppDomain.Unload(dom);
}
catch (CannotUnloadAppDomainException)
{
Console.WriteLine("Book Unloaded!" + " 4");
AppDomain.Unload(dom);
GC.Collect();
}
输出窗口在突然退出后显示:
类型'System.AppDomainUnloadedException'的第一次机会异常 发生在mscorlib.dll类型的第一次机会异常 mscorlib.dll中出现'System.AppDomainUnloadedException' 线程'vshost.RunParkingWindow'(0x1df8)已退出,代码为0 (为0x0)。线程''(0xfcc)已退出,代码为0(0x0)。
答案 0 :(得分:2)
类型' System.AppDomainUnloadedException'的第一次机会异常。 发生在mscorlib.dll
如果您收到AppDomainUnloadedException,则可以忽略这一点,因为卸载Application Domain时会抛出AppDomainUnloadedException,这就是您想要的。
来自msdn
尝试访问时抛出的异常 卸载的应用程序域