Splash每次启动时检查当前版本号是否与源版本号相同。如果相同则启动主程序不必更新。如果不同,对比文件版本号,或下载更新包进行覆盖即可。
一般情况下这种情况足以使用,不必对splash进行更新。大多数的处理方案是如果涉及到对splash更新时,要求客户手工更新或生新安装新的版本即可。
换句话来说,把splash看作是主程序的引导启动,它的功能除了引导主程序启动还会检查主程序是否需要更新。当然,如果实现全自动自更新时,可以考虑在应用程序文件夹中建立一个update文件夹。让splash启动后启动其中的批处理文件,批处理文件会干掉slpash进程,然后覆盖掉splash文件(主程序也可以这么干,但是有一定的危险性)。
我当时做过一个自动更新的应用程序(收银机自更),每天软件启动时调用的就是splash检查软件版本号。但我们使用的单一维护的方式,并不是让你下载更新包(软件统一更新,不涉及分支版本,所以统一维护即可),发现更新后,再对比所有文件版本号(与软件版本号不同),下载所有不同的软件版本下进行覆盖,覆盖完成后由splash启动主程序。
但是——我只是说但是,计划永远跟不上变化,领导要求必须会自更新splash!其实产生的原因很简单,当我们并没有计划将splash放到维护源,结果一个哥们在测试在将splash放到维护源被下载到了客户机,但确定无法覆盖正在运行的splash而导致更新失败(文档中注明了不需要将splash放到维护源的,测试人员闲的淡痛,非要试一下,然后将错误直接上报,虽然解析了原因,但领导要求一定要会更新splash自己,当然理由也非常充分——如果你的splash存在bug呢)!在这种情况下,我们使用了.bat文件,将splash运行时先检查update文件中的内容,如果有bat文件,则运行bat文件,由bat文件处理update中其他文件的拷贝。批处理就干了一件事——干掉正在运行splash,从update文件中将其拷贝出来,然后再运行splash。而且这个批处理文件的来源于维护源!也可以写复杂的bat文件进行其他一些相关的处理。update在应用程序文件夹内,所以只需要做相对路径。反正永远会存在一定的问题——你怕的是splash被无意上传到维护源,而bat文件编写错误时更有问题,而且而且而且,你不觉得这玩意是一个后门吗?测试人员只管的是测试,他们不会考虑到这个安全性的——反正没人说,如果哪天维护源被别有用心的人拿到,写了那个一个bat文件,唉呀——后果我们都不可想想!
要实现应用程序动态库的更新,可以考虑以下几个步骤:1. 确定需要更新的动态库:首先需要确定应用程序使用的哪些动态库需要更新。这可以通过检查应用程序的源代码或者查看应用程序的日志文件来确定。
2. 下载更新的动态库:一旦确定了需要更新的动态库,就可以从它们的官方网站或其他可靠来源下载它们的最新版本。
3. 替换旧的动态库文件:将新的动态库文件替换旧的文件。可以将它们直接复制到应用程序的运行目录下,或者将它们放到一个特定的目录中,然后将目录添加到应用程序的可搜索路径中。
4. 更新应用程序代码:如果新的动态库文件与旧的文件不兼容,就需要更新应用程序代码以适应新的动态库文件。这可能需要进行一些修改,例如更改函数名称,调整参数列表等等。
5. 测试更新:在更新动态库后,需要对应用程序进行测试,以确保更新不会导致任何问题或错误。
总之,实现应用程序动态库的更新需要一些技术知识和经验,但是通过遵循上述步骤,可以确保更新的过程是安全的和成功的。
这有点点复杂服务器存放更新信息、更新包
程序获取信息,对比是否要更新,,,,,,要的话,下载包、最好是调用另一个.exe去更新主.exe
~
~
~
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)