想做一个自动升级程序,不知有没有人做过

时间:2021-01-02 00:08:20
想做一个自动升级程序,在程序里加入一个联接或按钮,点击后可以自动升级成最新版本。

 不知道怎样才能先把旧版卸载在装入新程序,请大家提供一些好方法吧!


7 个解决方案

#1


先通过网络把新版本下载,然后将旧版本删除,新版本替换就可以了.
自动升级必须是另一个进程.

#2


我是这样做的
1.下载新的版本
2.建一个批处理文件(yyy.new 为新的文件,yyy.exe为老文件)
:try
del yyy.exe
if  exist  yyy.exe  goto  try
move yyy.new yyy.exe
del  %0
exit 
3.用CreateProcess执行上面的批处理
4.用Application->Terminate;关闭当前程序
如果你要程序重启,在批处理的exit前加
yyy.exe

#3


setup 文件要在控制面板“添加删除程序”里写内容的,所以不能直接删除。

#4


一个应用程序(AP),另一个负责升级的程序(SP)。
AP程序运行时,发现有升级版本,则启动SP程序(CreateProcess),
SP程序做如下处理:
  1、关闭AP程序
  2、下载数据,并替换旧程序
  3、启动新程序
  4、退出结束SP

#5


我的做法:
1、使用引导程序来起动真实工作程序,也就是说,使用的是两个程序,由一个预处理程序来起动主程序。
2、预处理程序访问网络,如发现有新版本,进行下载,下载完后再起动主程序。
3、建议使用http来下载,这样可靠度和兼容度都比较高。

也可以使用这样的做法:
使用两个程序,起动时起动主程序,如果主程序发现网络上有新版的程序,提示,如用户确认升级,则起动专用升级程序,主程序退出。专用升级程序进行下载。

使用http很容易做到这点,不过,http下载是没有限制的。
所以,建议使用ftp,呵呵,不过,ftp我没有试过,因为我做的是局网的东东,负核不大。

#6


我刚刚开始学,大家的建议都很有价值,只是不太理解,能不能请高手们留下详细代码,以供参考,十分感谢!

#7


这种东西应该在公司里都有代码的吧,几年下来这种代码应该很规范了啊,问一下同事什么的,有没有这方面的代码。实在没有就去网上找吧,google,baidu,实在不行就。。。

#1


先通过网络把新版本下载,然后将旧版本删除,新版本替换就可以了.
自动升级必须是另一个进程.

#2


我是这样做的
1.下载新的版本
2.建一个批处理文件(yyy.new 为新的文件,yyy.exe为老文件)
:try
del yyy.exe
if  exist  yyy.exe  goto  try
move yyy.new yyy.exe
del  %0
exit 
3.用CreateProcess执行上面的批处理
4.用Application->Terminate;关闭当前程序
如果你要程序重启,在批处理的exit前加
yyy.exe

#3


setup 文件要在控制面板“添加删除程序”里写内容的,所以不能直接删除。

#4


一个应用程序(AP),另一个负责升级的程序(SP)。
AP程序运行时,发现有升级版本,则启动SP程序(CreateProcess),
SP程序做如下处理:
  1、关闭AP程序
  2、下载数据,并替换旧程序
  3、启动新程序
  4、退出结束SP

#5


我的做法:
1、使用引导程序来起动真实工作程序,也就是说,使用的是两个程序,由一个预处理程序来起动主程序。
2、预处理程序访问网络,如发现有新版本,进行下载,下载完后再起动主程序。
3、建议使用http来下载,这样可靠度和兼容度都比较高。

也可以使用这样的做法:
使用两个程序,起动时起动主程序,如果主程序发现网络上有新版的程序,提示,如用户确认升级,则起动专用升级程序,主程序退出。专用升级程序进行下载。

使用http很容易做到这点,不过,http下载是没有限制的。
所以,建议使用ftp,呵呵,不过,ftp我没有试过,因为我做的是局网的东东,负核不大。

#6


我刚刚开始学,大家的建议都很有价值,只是不太理解,能不能请高手们留下详细代码,以供参考,十分感谢!

#7


这种东西应该在公司里都有代码的吧,几年下来这种代码应该很规范了啊,问一下同事什么的,有没有这方面的代码。实在没有就去网上找吧,google,baidu,实在不行就。。。