跨版本升级是一个麻烦的事情。我也看过论坛其它朋友的处理方式也不太适合我。所以就自己处理了一个:我说说我的方式,可以供大家参考!升级配置.ini
这个文件的内容由狐表完成
我是将升级地址和NewVersion放入的数据库。每次登陆的时候检查!
[system]
UpdatePath=http://dldir1.qq.com/qqfile/qq/QQ5.3/10702/QQ5.3.exe
Version=2014-4-20
NewVersion=2014-4-21
Start=我的程序.exe
狐表检查新版本后。写入INI配置文件,并启动自动升级.exe。
_UpdatePath="http://dldir1.qq.com/qqfile/qq/QQ5.3/10702/QQ5.3.exe"
Dim Version As String = FileSys.ReadAllText(ApplicationPath & "\Catch\Version.txt") '客户端Version.txt
If _UpdatePath<>"" Then
If Version <> _NewVersion Then
Dim Ini As String = "[system]" & vbcrlf & "UpdatePath=" & _UpdatePath & vbcrlf & "Version=" & Version & vbcrlf & "NewVersion=" & _NewVersion & vbcrlf & "Start=我的程序.exe"
FileSys.WriteAllText(ApplicationPath & "升级配置.INI", Ini, False, Encoding.Default)
Dim Result As DialogResult
Result = MessageBox.Show("系统发现有新版本!建议您升级后再使用!", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
If Result = DialogResult.Yes Then
Dim Proc As New Process
Proc.File = ApplicationPath & "自动升级.exe"
Proc.Start
Syscmd.Project.Exit(False)
End If
End If
End If
自动升级.exe的源代码:{用的aau软件编写的}
import fsys;
import fsys.unrar;
import fsys.ini;
import process;
import inet.downBox;
ini=fsys.ini("/升级配置.ini")
system = ini.getSection("system")
//如果版本不一致则下载升级文件
if(system.Version!=system.NewVersion){
inet.downBox(winform,"检查新的软件版本...",1).download(system.UpdatePath,"/update.rar") //最后一个参数autoClosed
fsys.unrar.extract("/update.rar","/")
}
process(system.Start)

此主题相关图片如下:snap1.jpg

以下文件是应11楼的需求。解压的是ZIP文件。以及更新后删除配置文件。
[此贴子已经被作者于2014-4-23 23:12:46编辑过]