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

时间:2013-07-15 06:10:54

标签: c# winforms dll runtime

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

我的应用程序稍后需要它(Ionic.Zip-library)。但是当应用程序关闭时,我怎么能删除这个* .dll?因为现在我收到the access is denied

的错误

我首先需要取消引用它吗?或者是否还有另一种方法可以将* .dll完全放在我的* .exe中?因为最后它应该只有一个* .exe。

1 个答案:

答案 0 :(得分:2)

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

然而,您可以启动新的AppDomain,在那里加载dll,然后在关闭应用程序时,unload AppDomain。卸载AppDomain后,正在运行的进程不再引用提取的dll,可以将其删除。

然而这有一个结果 - 你只能在创建的AppDomain中使用解压缩的dll。 Some googling可能会为您提供更多信息。