在家制作自动更新软件,这个方案做了3种

avatar shenyifan 2022-09-05 10:16 461次浏览 评论已关闭

深易凡软件库9月5日消息,最近重写了一个老产品条码扫描器,客户端添加到30个。由于频繁更新,C/S维护很不方便,所以做一个自动更新程序就显得尤为必要。

我在网上随意找了一下自动更新方案,大局部都是用VS的发布/更新功用,我不是很喜欢这个方案,觉得太费事,然后就初步揣摩了上面这个方案。

如今首选的方式是先画流程图。

软件更新流程/图像-1/

为了简化装置包,采用自解压压缩包制造更新包,并将整个新包打包成一个自解压压缩包。

以下是我的自解压包的参数设置。关于如何制造自解压包,有很多教程,大家可以本身搜索一下。

通用-解压途径:“c:\barcodeSys”设置-解压后运转:“c:\barcodeSys\updateLog.txt”形式:隐藏启动对话框。初级:添加桌面源文件的快捷方式:“c:\barcodeSys\BarcodeMain.exe”快捷方式称号:条码扫描器更新:解压交换,全部掩盖。

制造更新程序由于软件更新时更新程序不断在运转,自解压包时无法交换更新程序,所以将更新程序制造成独自的程序集,在主程序启动时调用。

在更新程序之前,先处理如何判别能否存在最新版本的成绩。我运用FTP效劳器创立一个名为SvrVer.txt的新文本文档,并运用最新版本号,运用本地程序文件夹创立一个名为version的文本文档,并运用本地程序版本号。办法反省效劳器版本号能否与本地版本分歧。假如分歧,阐明不需求更新。反之则相反,如下图所示。

主程序的一些小修正。由于每次启动主程序都会调用更新程序,并且会封闭本身的进程为更新做预备,所以需求在主程序中做一些大事情,否则就会堕入启动主程序-启动更新程序-启动主程序的死循环。

1.修正主程序入口的Main办法,添加参数。

[statthread]static void main(string[]arg)//承受参数{ application . enablevisual styles();请求。setcompatibleextrenderingdefault(false);请求。Run(新索引(arg));//结构函数传递给主程序窗体}

2。主程序添加一个带参数的结构函数。

公有字符串[]targ;//收到参数public index(){ initialize component();} public index(string[]arg)//带参数的结构函数{ initialize component();targ = arg}

3.确定能否从参数开端。

//反省执行参数privatestaticsystem诊断;processp假如(targ。Length==0) //假如没有传递参数,更新程序{ If(p = = null){ p = new system . diagnostics . process();p . startinfo . filename = ” update PRG . exe “;p . Start();请求。exit();} else { if(p . hasexisted)//能否运转{ p . Start();} } p . startinfo . window style = System。diagnostics . processwindowstyle . normal;}最初的运转效果最初引荐一个绿色版的简易FTP软件Quick Easy FTP Server,复杂易用,关于更新来说足够了。

发表评论
请先登录后再评论~