主程序运行之后开始判断版本是否需要更新
当需要更新的时候才去调用更新程序进行更新、
更新程序具有读写文件以及杀死主程序进程的权限
这样就避免了程序更新时自身锁定不可写的问题
注:这里的更新程序跟主程序不是子程序的关系,而是两个相互独立的程序
代码木有..思路一堆..
如果您的程序想删除原本的..
友情提示.看看百度影音的做法吧.
直接新建了一个文件夹.
删除原本的文件夹..
这个是比较极端的
您可以尝试这次的更新程序下载下来2个EXE.一个是主程序_TEMP.EXE一个是UPDATE.EXE
然后执行UPDATE.EXE
关闭自己
Update.EXE
删除原本的内容
更改主程序_TEMP.EXE
为主程序.exe
这下就把原本的程序完美替换了..
/*切割*/
但是以前见过单文件自己更新自己的,不知道是否是经过打包
但文件自己更新自己是这样子滴...动态生成一个BAT...然后执行他就好了..执行完了BAT自行删除..这个就很简易了..
但是您要考虑到BAT要是删除失败..可就比较恶心了
如果您不关心原本的程序.
或不关心原本程序的废除DALL.冗余的文件
那么就简单了..
但是也有前提:
前提是你的主程序.EXE
也就是你执行更新这一段代码的EXE程序自己不更新.否则由于进程锁无法更新
其实也能仿.
例如..下载的新的EXE名字改一下..生成BAT删除原本EXE更改名字.BAT自行删除.
/*再割..*/
您说的自己更新自己是CLICKONCE吧..
他是微软自己实现的.通过WINDOWS的一个组件
前提当然也就是您说的..打包了.
而且整个打包方式都不同..
你可以去腾讯电脑管家的电脑诊所看看我记得上次电脑出现问题需要解决的时候看到DLL丢失修复这项了
管家管理页——工具箱——电脑诊所——DLL丢失——看里面有没有跟你一样的情况——有的话选择立即修复就可以了
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)