zoukankan      html  css  js  c++  java
  • WinForm通用自动更新AutoUpdater项目实战

    目前我们做的上位机项目还是以Winform为主,在实际应用过程中,可能还会出现一些细节的修改。对于这种情况,如果上位机带有自动更新功能,我们只需要将更新后的应用程序打包放在指定的路径下,可以让用户自己来进行更新使用,会大大增加项目的便捷性。

    01.自动更新整体思路

    今天给大家介绍一下如何基于C#实现WinForm自动更新的一种方式,这种方式长期应用在项目中,提供了很多帮助,也节约了大量的时间成本,并且也使用在CMSPro软件中,整体流程如下图所示:

    图表 1自动更新流程

    02.实现说明

    通过上图,可以发现这种方式是基于打包文件的方式实现的,好处在于整体打包下载,即使中途出现网络中断也不会有任何影响,当然相比于那种单个文件更新的方式,可能每次耗时会多一些,但是由于更新并不是一个频繁操作的过程,这个时间是可以接受的。

    (1)首先对于项目是否启用自动更新,是通过配置的方式实现的,在实际开发中,可以使用手动更新和自动更新两种方式,当启用自动更新时,每次启动应用程序都会与服务器版本号做下比较,判断是否执行自动更新的流程。

    图表 2自动更新界面

    (2)对于手动更新,可以通过点击,弹出一个手动更新窗体,如下图所示:

    图表 3手动更新界面

    (3)对于服务器路径、本地版本号等信息都是通过本地配置文件存储的,因此本地需要有一个LocalVersion的配置文件,具体用什么形式,可以自由选择,Ini、Txt、Xml、Json都可以,如下图所示:

    图表 4本地配置文件参考

    (4)服务器侧也会有一个配置文件,形式自由选择,应该包含以下信息:当前服务器版本号、最新版本的程序包、该版本是否更新、该版本更新内容等信息,同时如果有新版本,应该将新版本的文件放到指定路径下,保证最新版本包的这个路径是有效路径。

    图表 5服务器配置文件参考

    (5)上位机通过将服务器的最新版本号与本地的版本号做对比,如果服务器的版本号较大,说明服务器有更新版本,因此,会根据最新版本包的地址进行下载,这里采用的是zip文件,下载过程根据网络及实际情况可能会耗时,因此上位机侧应该做个进度条,让用户知道下载的进度情况,同时对于每一步的状态也应该通过图标的方式来进行显示,让用户明确更新的进度情况。

    图表 6自动更新流程

     

    (6)更新完成后,系统会自动重启新的应用程序,可以看到软件从之前的5.3.5版本升级到最新的6.0.0版本。

    图表 7更新结果

    03.整体总结

    本文主要工控上位机进行自动更新的流程做了一个整体介绍,主要是介绍流程为主,给大家分享一下实现的整体思路,毕竟每个人的实现方式都可能有所不同,大家也可以在此基础上增加一个新的功能,给自己的上位机软件增加一点特色的同时,也给自己提供了便捷一下升级的过程的话,可以通过关注本公众号:dotNet工控上位机,并发送关键词:CMSPro,下载之后安装运行,便会直接进入版本升级的过程。

    公众号:thinger_swj

  • 相关阅读:
    leetcode778
    2020年的一些总结
    go笔记 NSQ (6) ( nsqd如何创建消费者以及消费消息)
    go笔记 NSQ (5) ( nsqd如何监听生产者的消息,select关键字使用)
    go笔记 NSQ (4) ( nsqd启动监听来了解go如何编写tcp与http服务端,以及sync.WaitGroup线程同步工具使用 )
    go笔记 NSQ (3) ( 从启动nsqd了解flag包使用,解析配置文件以及json有关,反射使用 )
    Sitecore去除地址中带语言,例:localhost:8080/zh-cn/index
    js给URL追加参数
    SQL Server服务启动时错误:1069(由于登陆失败而无法启动服务)
    C# windows服务定时处理/例每天凌晨1点处理数据
  • 原文地址:https://www.cnblogs.com/xiketang/p/13093484.html
Copyright © 2011-2022 走看看