WinForm通用自动更新器AutoUpdater项目实战

一、项目背景介绍

最近单位开发一个项目,其中需要用到自动升级功能。因为自动升级是一个比较常用的功能,可能会在很多程序中用到,于是,我就想写一个自动升级的组件,在应用程序中,只需要引用这个自动升级组件,并添加少量代码,即可实现自动升级功能。因为我们的程序中可能包含多个类型的文件,比如exe、dll、 config、xml、bat等等自定义格式的后缀名文件,所以要支持多文件类型的更新。 本期同样带给大家分享的是阿笨在实际工作中遇到真实项目场景,请跟随阿笨的视角去如何开发实现WinForm通用自动更新器AutoUpdater,如果您对本期的教程内容感兴趣,那么请允许让阿笨带着大家一起学习吧! 废话不多说,直接上干货,我们不生产干货,我们只是干货的搬运工。

你学会了从1数到10吗?

三、项目实现原理图

3.1、WinForm通用自动更新器AutoUpdater原理图

实现思路:在远程IIS自动升级服务器上放一个XML文件,里面记录了软件版本号,发布日期,要更新的DLL等一些信息,如果发现本地软件的版本号和服务器上的不相等,则替换掉本地的文件。

原理图

3.2、那么我们今天需要解决涉及到的核心技术问题可以总结为下面的一句话:

如何实现通过基于HTTP协议方式进行远程IIS虚拟目录文件下载?

3.3、问:WinForm通用自动更新器AutoUpdater是以什么方式进行文件下载的呢?

支持FTP协议和HTTP两种协议方式,推荐使用HTTP方式。

四、涉及覆盖的知识点

两个独立的Winform程序之间如何传递和接收参数; 如何通过通过HTTP协议进行远程站点文件下载; IIS如何搭建自动升级虚拟站点; 如何配置IIS使其支持自定义文件后缀名格式的文件下载,比如.apk、.config、.bat、.pdb等等; AutoUpdateXmlBuilder自动升级器打包工具的使用; 等等......

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏日暮星辰

腾讯云云主机实现多IP绑定

腾讯云主机实际上一直允许绑定弹性IP,最开始是可以实现经典IP更换为弹性IP可以有效的屏蔽掉攻击,释放IP进行更换。

59230
来自专栏开源项目

代码生成器:提升程序员的生产力 | 码云周刊第 27 期

代码生成器:提升程序员的生产力 码云项目推荐 1 基于代码生成器的 J2EE 快速开发平台 jeecg ? 项目简介:JEECG(J2EE Code Gener...

42590
来自专栏aoho求索

NSQ深入与实践

1. 介绍 最近在研究一些消息中间件,常用的MQ如RabbitMQ,ActiveMQ,Kafka等。NSQ是一个基于Go语言的分布式实时消息平台,它基于MIT开...

66290
来自专栏老蒋专栏

腾讯云服务器扩容云磁盘增容至挂载盘目录中的方法

在老蒋记录的文章中,关于VPS、服务器的挂载盘问题其实也是比较多的,但是确实因为疏忽不同的服务商可能操作起来有所不同。最近主要对腾讯云服务器这块的云磁盘扩容挂载...

1.5K60
来自专栏猿天地

hbuilder 开发5+ APP采坑记录

开发一款APP产品需要在安卓和苹果2大平台发布,同时开发团队也需要有安卓和IOS。 HTML5 Plus移动App,简称5+App,是一种基于HTML、JS、C...

82790
来自专栏云计算

Kubernetes中的Service Mesh(第5部分):Dogfood环境和入口

原文地址:https://dzone.com/articles/a-service-mesh-for-kubernetes-part-v-dogfood-env...

28880
来自专栏编程坑太多

『中级篇』docker企业版本地安装之UCP(57)

PS:详细不介绍,就是一个图形化的,没啥介绍的。下次在阿里平台是建立下用云端玩玩。

27040
来自专栏成猿之路

不就是装个系统吗?其实我也会的!

前几天有些粉丝留言说 出一遍教装系统的文章,今天特地写一遍,希望能给大家带来帮助!

12920
来自专栏编程坑太多

『高级篇』docker之镜像仓库(20)

想在mac上安装一个harbor 下载了harbor-offline-installer-v1.6.1.tgz

17940
来自专栏编程坑太多

『高级篇』docker之DockerSwarm的了解(27)

PS:假定运行了一个nginx服务2个实例,nginx1 和nginx2,容器内的端口是80,主机内的端口是8080, 这2个容器分别运行在node2和node...

13110

扫码关注云+社区

领取腾讯云代金券