C#.Net局域网版本自动升级解决方案(原创)
![]() ![]() AutoUpgrader升级程序1.0简介 开发框架高级版V3.x提供版本自动升级套件,全部开源。目前升级程序是v1.0版,此版本适合企业内部网络的程序升级。未来计划对v1.0进行升级,扩展基于广域网络升级(升级Tcp/IP下载器及WebService下载器)。 升级程序1.0由两个独立的程序组成: 1. CSFramework3.AutoUpgradeServer.exe : Tcp/IP服务器 2. CSFramework3.AutoUpgrade.exe: 客户端程序 客户端执行升级方式: 1. 手动运行升级程序CSFramework3.AutoUpgrade.exe ![]() 2. 主程序Main.EXE自动调用检测版本, 调用代码: C# Code: bool appExit = false; VersionCheck.CheckVersion(ref appExit); //检查版本 if (appExit) { Application.Exit(); return; } //来源:C/S框架网(www.csframework.com) QQ:1980854898 AutoUpgrader V1.0 定义了两个下载策略 通过Upgrader.ini文件配置任意一种,预设为TcpIP下载. 策略接口 (IDownloader) ![]() IDownloader接口实现 C# Code: /// <summary> /// 下载器接口 /// </summary> public interface IDownloader { /// <summary> /// 下载器名称 /// </summary> string Name { get; } /// <summary> /// 文件存放路径 /// </summary> string DestinationPath { get; set; } /// <summary> /// 本次下载文件清单 /// </summary> IList FileList { get; } /// <summary> /// 下载成功文件数 /// </summary> int DownloadSuccess { get; } /// <summary> /// 下载失败文件数 /// </summary> int DownloadFailed { get; } /// <summary> /// 获取下载文件清单 /// </summary> IList GetFileList(); void DownloadAll(); void DownloadAll(IList files); bool DownloadFile(FileInfo file); IProgressUI ProgressUI { get; set; } } //来源:C/S框架网(www.csframework.com) QQ:1980854898 a) DownloaderTCPIP: 使用Tcp/Ip Socket组件下载文件 ![]() b) DownloaderLAN:网络共享盘(共享目录)直接复制文件 在局域网上共享一个目录,目录权限仅开放给一个特定的用户, 其它用户不可直接访问. ![]() 版本自动升级流程图: ![]() 流程说明: 1)客户端请求更新版本(或系统自动检测版本) 2)下载服务器上的文件清单(FileList.XML文件) 到本地。 3)枚举FileList.XML文件与本地文件的日期进行比较, 当日期小于服务器上的文件日期时需要下载该文件. 4)筛选出要更新的文件(本地文件日期小于服务器端文件日期) ,然后建立下载清单。 5)跟据下载清单逐个下载文件。 6)下载完成后运行主程序。 Source Code for VIP: ![]() C/S系统版本自动升级软件|软件自动升级工具 V1.2![]() ![]() ![]()
|