在运行时释放/删除*.dll

本文关键字:dll 删除 运行时 释放 | 更新日期: 2023-09-27 18:22:23

我有一个WinForm应用程序,启动时我从嵌入式资源(Properties.resources)中提取一个*.dll。

我的应用程序稍后需要这个(Ionic.Zip库)。但是当应用程序关闭时,我如何删除这个*.dll?因为现在我得到一个错误the access is denied

我是否首先需要取消引用它?或者还有其他方法可以完全让*.dll进入我的*.exe吗?因为最后它应该只有一个*.exe.

在运行时释放/删除*.dll

您无法从正在运行的AppDomain中卸载加载的dll。

但是,您可以启动一个新的AppDomain,在那里加载dll,然后在关闭应用程序时卸载AppDomain。卸载AppDomain后,提取的dll不再被正在运行的进程引用,并且可以删除。

然而,这会产生一个后果-您只能在创建的AppDomain中使用提取的dll。一些谷歌搜索可能会给你更多的信息。