WinForm自动更新程序

本文介绍了一种WinForm应用程序的自动更新方案,通过创建独立的更新程序实现在启动时检查并更新至最新版本,避免了频繁手动更新的困扰。

WinForm自动更新程序

WinForm自动更新程序

刚刚开始搞Winfrom开发的小伙伴经常遇到这样一个问题:程序在公司内部广泛使用,特别是在自动化的工厂内部,在需求频繁变更的时候每次更新都是一件心态爆炸的事情,这时候一个自动更新的程序就非常有必要。
在查找了网上众多资料后,发现不是收费的,就是代码没法使用,最终决定还是自己写一个。根据网上资料学习和自身业务,完成下述代码。

思路

在用户打开程序的时候,无法直接更新本体程序,那就需要新建一个小的更新程序来进行更新的事情。

在主体程序的开始时先行判断当前版本是否为最新,不是则开始调用更新程序并关闭主体程序。更新程序完成更新后再回调主体程序。

代码

更新程序

			MaterialManageEntities db = new MaterialManageEntities();
            Thread.Sleep(5000);//此处暂停是为了等主体程序完全关闭才能删除
            string sys_path = db.System_Config.Where(x => x.Name == "Path").FirstOrDefault().Text;//获得保存在数据库的下载路径
            var list = db.File_Path.ToList();
            foreach (var info in list)//删除旧的文件
            {
   
   
                FileInfo file = new FileInfo(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, info.Name));
                file.Delete();
            }

            WebClient wc = new WebClient<
一、软件开发环境以及开发工具: 框架:.NET Framework 4.0 工具:Visual Studio 2017 插件:DevExpress 18.1.7 环境:IIS 7 二、实现步骤 (1)在项目中创建一个名为WinformAutoUpdate.APP的Winform窗体应用工程,并将默认的Form1.cs窗体文件重命名为MainFrm.cs作为主程序窗体 创建主程序窗体 (2)在项目中再创建一个名为AutoUpdateTask的Winform应用程序工程,并将默认的Form1.cs窗体文件重命名为AutoUpdateTaskFrm.cs作为更新程序窗体 创建更新程序窗体 (3)在更新程序窗体中放入图上所示的相关控件; 进度条控件用于显示更新进度,放入一个Button按钮控件用于用户根据提示进行操作! 实现思路: 1、将更新程序放入磁盘的目录下面,并将其放在已经发布了的IIS中 当用户在运行主程序窗体并点击左上角的更新按钮时,弹出程序更新窗体,并先自动从IIS中拉取updateList.xml文件,然后与本地程序作对比,检测是否需要升级软件; 如果有新版本发布,则点击“立即更新”按钮,程序将从IIS中拉取新发布的ZIP软件包,并自动解压到主程序目录中,覆盖主程序目录中的相关文件(这里值得注意的是,在解压程序之前,我们需要先结束主程序的进程,不然会因主程序进程正在使用而导致报错,另外,我们用到的插件是ICSharpCode.SharpZipLib.dll第三方动态链接库,网上有现成的,可以直接Down下来用);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值