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