0

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

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

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

4

1 回答 1

2

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

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

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

于 2013-07-15T06:30:34.340 回答