客户方程序主动对接升级系统的处理流程
1.技术讨论背景
由于客户方程序存在特殊技术需求,所以无法使用默认的版本层级架构(使用引导launch程序去引导对应版本客户方的主程序以及升级客户端运行)。
为了满足客户方的需求,所以升级方案需要做定制化调整,将升级程序存放客户方主程序根目录,去掉版本层级以及launch引导程序,由客户方主程序来主动触发或者间接触发升级客户端的运行。
2.客户方程序对接的处理步骤
简单说客户主程序接入升级系统,一般需要处理2部分,一个是主动运行升级客户端,另一个是强制升级的接入
2.1 升级环境准备
首先按照《特殊无层级的升级方案部署流程》,准备好当前要部署项目的AutoUpdate.exe升级客户端程序。
此篇文章只讲解客户主程序针对升级系统的对接部分。
2.2 客户主程序接入AutoUpdate.exe
此时AutoUpdate.exe已经存在于和客户主程序同级目录,对于常规升级,一般需要满足两种情况
2.2.1 自动升级
当客户主程序运行时,适当时机,主动添加”/Auto“参数运行AutoUpdate.exe,此时AutoUpdate.exe会以自动升级流程运行。
2.2.2 手动升级
一般为了灰度测试,或者产品运行期间的主动检测升级,需要客户主程序支持手动升级。一般主程序设计时,会在主界面帮助菜单,或者设置里面有个主动触发手动升级的逻辑,触发后,无参数运行AutoUpdate.exe,此时AutoUpdate.exe会以手动升级流程运行。
2.3 客户主程序支持强制升级
参考《NSetup升级系统后端升级任务参数介绍》,步骤7{是否强制},当获取到当前升级服务器对于当前项目的升级任务信息,对比最新版本[currentVersion]与当前本地产品的版本,如果当前本地版本低于服务器最新版本,且当前升级任务为强制升级[forcedType == 1],同时当前升级任务的检测类型为自动升级[checkType == 0],并且当前升级任务为有效{taskStatus==1}。则主程序进行强制用户进行升级的提示和逻辑处理。
2.4 升级日志
对于升级客户端显示的当前最新版本的升级日志,客户主程序无需处理,升级客户端会自动通过升级服务器API自动获取和显示。客户只需通过升级服务程序后台,更新对应升级任务设置信息即可。