首页 新闻 会员 周边 捐助

MDI窗体下更新DLL

0
[待解决问题]

在MDI应用程序中,打开DLL所在的窗体,然后将使用DLL的窗体关闭,
但是将新版本的DLL复制到当前的应用程序目录时,提示当前的文件已在
另外一个文件中打开,但是实际上已将其窗体关闭, 为什么 还会有这样
的提示>请问下,有没有办法实现在不关闭主窗体的情况下,只更新
子窗体用到的DLL

Bay.Li的主页 Bay.Li | 菜鸟二级 | 园豆:201
提问于:2013-01-29 17:42
< >
分享
所有回答(3)
0

用LoadLibrary来加载你的DLL,不用时用 FreeLibrary 卸载,这个时候你就可以复制新的DLL了。

Launcher | 园豆:45050 (高人七级) | 2013-01-29 17:58
0

这非常简单,.NET的程序集一旦加载了,则无法卸载,除非卸载整个AppDomain。关闭了窗体之后,只是这个实例被释放,但这个窗体的类型还是在内存中加载着。

 

要这么干的话,主窗体和子窗体需要在不同的AppDomain,就好比是进程一样。

道法自然 | 园豆:216 (菜鸟二级) | 2013-01-29 22:27
0

直接将dll转化为文件流,放在内存中,从内存中加载dll文件,反射生成界面。

达者均为师 | 园豆:202 (菜鸟二级) | 2014-04-13 22:57
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册