2017-07-24 35 views
2

我已经创建了一个新的应用程序域并将我的程序集加载到它。我试图卸载一个应用程序域,但我的应用程序停止工作

Assembly assembly = dom.Load("bookOne"); 

一切顺利。应用程序使用的资源字典等。但是当我试图卸载DLL释放内存与此代码我的应用程序关闭没有任何错误或警告:

try 
{ 
    AppDomain.Unload(dom); 
} 
catch (CannotUnloadAppDomainException) 
{ 
    Console.WriteLine("Book Unloaded!" + " 4"); 
    AppDomain.Unload(dom); 
    GC.Collect(); 
} 

输出窗口突然退出后显示了这些

类型“System.AppDomainUnloadedException”的第一次机会异常 发生型 “System.AppDomainUnloadedException”的mscorlib.dll中第一次机会异常出现在mscorlib.dll的 螺纹“vshost.RunParkingWindow”(0x1df8)已退出代码为0 (0x0)。线程''(0xfcc)已退出,代码为0(0x0)。

+0

您的意思是否关闭应用程序** **没有错误或警告时引发的异常。你在事件日志中得到什么错误或警告?你能否抓住这个异常并记录下来,理解你为什么不能卸载。而不是再次卸载。在您的ctach块 –

+1

抱歉,输出窗口日志已添加到问题中。 – hemarn

回答

3

型“System.AppDomainUnloadedException” 的第一次机会异常出现在mscorlib.dll

如果您收到AppDomainUnloadedException,那么你可以忽略这一点,因为AppDomainUnloadedException被抛出时,应用程序域被卸载,这就是你想要的。

msdn

当试图访问一个 卸载应用程序域

+0

这是一个普通的异常,像ThreadInterruptedException等。 – hoodaticus