• 如何使用GeneralUpdte构建客户端自动升级功能

  • 发布日期:2022-04-07 02:49   来源:未知   阅读:

  石嘴山市打造“智慧矫正中心”,本篇文章将向各位小伙伴介绍GeneralUpdate组件的使用,帮助第一次接触开发者快速上手应用在自己或企业项目中。如果本篇文章对您有帮助,希望帮忙点一下star。感谢各位开发者的支持。

  答:不需要,组件已经将整个更新流程考虑到了。所以除了组件代码以外,不需要开发者额外多写任何辅助代码。

  答:是的,需要。但一定要保持升级程序不能引用主程序的里的任何代码。否则会更新失败。

  答:会的,组件更新完成之后会保证文件列表干净,不会出现冗余文件污染、磁盘空间占用的情况。

  答:理论上支持的,作者没有实际这么使用过。据反馈有的小伙伴已经这么干了。本次分享是针对C/S架构的场景。

  答:可以通过官方网站、或者相关Q群、以及我gitee或github的issue中与我交流。

  (9)下载包解压在C盘下Program Files (x86)时,没有权限操作怎么处理?

  在开始讲解使用之前,我们先需要搞明白GeneralUpdate更新体系中的一些基础概念、名词。

  client启动后将会向服务器发送http请求,确认upgrade是否需要更新。

  如果client发现upgrade不需要更新或者upgrade更新完毕之后,那么将会直接通过进程启动upgrade独立进程的应用程序。(也就是上面为什么需要保持引用独立)

  upgrade被启动之后,会自动去请求client的更新包。用于更新client的内容;

  在client、upgrade请求更新期间,server将会起到关键作用。提供版本更新信息、版本验证信息用来判断是否需要更新以及更新包下载地址。

  接下来就可以写代码了,在最新版本中简化了启动配置。(如果需要自定义配置则参考:)

  //e.FailedVersions; 如果出现下载失败则会把下载错误的版本、错误原因统计到该集合当中。

  到这里基础的功能代码已完成,剩下的事件回传的内容根据需要使用即可。推荐用法为:将事件回传参数在客户端中用独立遮罩层类似于“转圈圈的”界面显示升级进度信息,或者用日志记录下来。

  TxtMessage.Text=msg;//这里接收推送的内容跟服务端约定好能解析即可,也可以在这里启动更新。

  接下来就可以写代码了,和ClientCore不同的是它不在需要配置url等内容将从进程传参中拿到RemoteAddressBase64的内容(内容是自动生成好的不需要关心)。

  这里使用新推出的Minimal api演示,其他的api的模板也同样适用。

  //这里需连接数据库查询对应内容,我这里用假数据辅助调试而已。这里需查询出最新发布日期的版本信息。

  这里分享的是最新版本推送的功能,基于singal R来实现的。需要对singal r有一定了解。代码如下:

  开源不易希望大家能多多支持。可能或多或少会有些bug希望大家多多反馈,感谢各位的支持。