日期:2014-05-17  浏览次数:20750 次

动态加载卸载DLL文件
我想自动更新程序,所以除了主函数全部想使用DLL文件,能够在程序发现DLL文件更新时自动重新加载DLL文件。这样就要先对DLL文件进行卸载关闭,然后在重新加载

------解决方案--------------------
需要新建一个AppDomain,在它里面加载Dll,通过AppDomain.Unload卸载。

或者需要两个程序,一个更新程序、一个运行程序。更新程序负责检查和更新Dll,完成后启动运行程序。
------解决方案--------------------
具体自己去学了,就是用AppDomain.CreateDomain创建一个新的AppDomain,然后按需加载,不用的时候卸载。没接触过的话还是用第二种简单些。

第二种怎么会不好呢?多少具有自动更新功能的软件都是这样做的。
------解决方案--------------------
通过反射进行动态加载dll
卸载 AppDomain.Unload
 
此消息通过 【CSDN论坛 Winform正式版】 回复!有关此工具
------解决方案--------------------
新建AppDomain比较复杂,你只是想替换dll,那可以加载dll之前先把dll文件内容读入到byte[]中,用反射从它里面加载dll,这时候dll文件是可以替换的。