从内存中卸载DLL

3
如何卸载属于另一个进程的 DLL,或者该进程已经结束但 DLL 仍然加载在内存中?
我知道如何查找现有进程,甚至列出所有已加载的 DLL,但我似乎无法找到如何查找已加载的 DLL 并将其从内存中卸载的方法。
我读过的所有内容都谈到了 AppDomains,但我不确定这种情况是否适用于该方法,因为我想关闭并非由我的应用程序调用的 DLL。
任何帮助都将不胜感激。

为了实现这个,我使用了MAF,你可以在这里阅读更多关于MAF的信息。 - ígor
2个回答

1

我认为你不能卸载单个程序集。但是你可以卸载包含该程序集的AppDomain。


0
以域中立方式加载的共享 DLL 除非进程退出,否则无法卸载。特定于域的 DLL 将随域一起卸载。但是,即使 DLL 仅用于反射,也没有办法卸载单个 DLL。

所以,即使最初加载dll的进程已经退出,我也无法卸载在应用程序关闭/崩溃时未卸载的dll吗? - user1769189
你是否在同一进程中的多个应用程序域或跨多个进程中使用DLL?如果DLL已以共享模式加载,则除非所有AppDomains卸载,否则它将不会卸载。 - jags

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接