C#动态加载dll 时程序集的卸载问题

C#动态加载dll 时程序集的卸载问题,第1张

你提到,当卸载域的时候“另一个线程还在执行这个dll里面的方法”,那么这个方法的调用方应该在计划卸载的域之外,这样:通过反射方法运行的代码在执行的域中(即主程序的域),这种情况下在执行域中同样加载了目标程序集(因此文件被占用),与要卸载的域无关。

如果目标程序集是可执行程序,则可以令新建的域执行该代码,此时,在代码执行中突然卸载域,会从执行线程上引发AppDomainUnloadException异常。

跨应用程序域访问不是一种好的设计思路。

1、点工具,选择加载应用程序。2、如果是临时加载的程序,可以在已加载的应用程序列表里面找到该程序,然后点卸载,或者关闭软件重新打开,这个程序也没有了。3、如果是加载到启动组里面的程序,在启动组位置点内容,找到需要卸载的程序选中点删除即可。

该情况的出现与你的杀毒软件有关,断开网络,卸载杀毒软件此问题大部可以解决。你可以更换360或瑞星这类杀毒软件,换成评价更高的比如nod32等杀毒软件。也可以使用另存为进行保存。虽麻烦但不用换杀毒软件。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11018361.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-13
下一篇 2023-05-13

发表评论

登录后才能评论

评论列表(0条)

保存