摘要:今天想把在做的一个软件能改成自动更新,基本原理是从网上读一个XML配置文件,如果读出来的版本号比当前的DLL的版本号要大的话,就自动先去网上下载一个DLL回来覆盖老的.很简单的功能.在做的时候却碰到一点麻烦,如果加载了ASSEMBLY之后,再覆盖就会出现文件已经被占用的错误,没多考虑,按照常理把ASSEMLI卸载了不就行了,可是Assmbly这个类只有LOAD却没有UNLOAD,于是到处查资料请教大侠,动用了很多复杂的办法,包括卸载应用程序域和设置影像副本等,都没有搞定,一气之下,决定每次运行都从网上加载DLL文件,OK,成功,但是突然想到了LoadFrom这个方法来加载本地DLL(我一直用的是LoadFile,因为这两者没什么大区别,都是指定一个DLL文件来加载ASSEMBLY,但是LOADFILE是1.1新加的,很想当然的认为用新的总比用旧的好),结果根本不需要卸载ASSEMBLY,直接覆盖成功.当然前提是要打开当前应用程序域的影象复制功能.
哎,既生LOADFROM何生LOADFILE,气死我也
附MSDN中两个方法的使用说明
LOADFILE: 加载程序集文件的内容。
注意:此命名空间、类或成员仅在 .NET Framework 1.1 版中受支持。
LOADFROM: 加载程序集。
...[
阅读全文]