在家制作自动更新软件,这个方案做了3种
本文最后更新时间2022-09-05 10:16,已超过844天没有更新,若内容或图片失效,请留言反馈。
深易凡软件库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,复杂易用,关于更新来说足够了。
本文章的二维码
用手机扫码打开本页
发表评论