我有一个WinForm
应用程序,在启动时我从嵌入式资源(Properties.Resources)中提取* .dll。
我的应用程序稍后需要它(Ionic.Zip-library)。但是当应用程序关闭时,我怎么能删除这个* .dll?因为现在我收到the access is denied
我首先需要取消引用它吗?或者是否还有另一种方法可以将* .dll完全放在我的* .exe中?因为最后它应该只有一个* .exe。
答案 0 :(得分:2)
您无法从正在运行的AppDomain卸载已加载的dll。
然而,您可以启动新的AppDomain,在那里加载dll,然后在关闭应用程序时,unload AppDomain。卸载AppDomain后,正在运行的进程不再引用提取的dll,可以将其删除。
然而这有一个结果 - 你只能在创建的AppDomain中使用解压缩的dll。 Some googling可能会为您提供更多信息。