使用SimpleUpdater实现WinForm自动升级
1、使用NuGet安装SimpleUpdater
我使用的是Visual Studio 2017,右键引用,管理NuGet包,如下:
2、设置项目版本Assembly Version
右键项目属性,打开程序面板点击装备版本并设置版本号,如下:
3、客户端使用SimpleUpdater
新建一个AutoUpdater类,如下:
public class AutoUpdater : HYSingleton<AutoUpdater>{public AutoUpdater(){//获得当前的更新实例fsLibUpdater = FSLib.App.SimpleUpdater.Updater.Instance;/* * 1.注册程序集。当程序集被注册的时候,任何程序集中实现了 FSLib.App.SimpleUpdater.Defination.IUpdateNotify 接口的都将会被自动实例化并调用* 通过此方法可以实现自己的事件捕捉以及处理类* 此例中, 类 CustomConnect 将会被实例化并调用*/fsLibUpdater.UsingAssembly(System.Reflection.Assembly.GetExecutingAssembly());}/// <summary>/// Checks the update.检查更新/// </summary>/// <returns></returns>public bool CheckUpdate(){if (Properties.Settings.Default.IsAutoUpdate){string updateUrl = Properties.Settings.Default.UpdateUrl;return FSLib.App.SimpleUpdater.Updater.CheckUpdateSimple(updateUrl, "update.xml");}else{return true;}}/// <summary>/// The fs library updater,程序更新对象/// </summary>private FSLib.App.SimpleUpdater.Updater fsLibUpdater;}
在WinForm程序构造中调用SimpleUpdater,如下:
public partial class Form1 : Form{public Form1(){InitializeComponent();//检查更新===========使用SimpleUpdaterbool ret = AutoUpdater.GetInstance().CheckUpdate();}private void button1_Click(object sender, EventArgs e){//初始化日志文件 string state = ConfigurationManager.AppSettings["IsWriteLog"];//判断是否开启日志记录if (state == "1"){var path = AppDomain.CurrentDomain.SetupInformation.ApplicationBase +ConfigurationManager.AppSettings["log4net"];var fi = new System.IO.FileInfo(path);log4net.Config.XmlConfigurator.Configure(fi);}LogHelper.WriteLog("holle world");}}
配置文件配置升级路径(本例在本机上测试,注意升级路径格式),如下图:
目前界面是这样的,如下图:
4、测试自动升级
4.1 创建测试环境目录结构
将Debug中的所有文件(此时程序的版本是1.0.0.0)拷贝至Debug_client文件夹中,为后续测试做准备
- Debug:为解决方案生成的目录(重新生成的文件都在这个文件夹下)
- Debug_client:为模拟客户端程序目录(存放旧版本的程序文件)
- Debug_forbuilding:为后续使用升级包创建工具输入目录(存放需要制作成升级包的文件)
4.2 IIS创建网站(为测试升级做准备)
创建网站,物理路径为存放升级包文件的目录,本例中将升级包放在了“D:\学习测试\C#测试\TestSimpleUpdater”路径下,如下:
4.3 使用升级包创建工具-BY iFish
前面我们已经将Debug中的文件拷贝至了Debug_client文件夹中(此时的程序是1.0.0.0版本),如下图:
接下来我们修改程序界面,增加一个按钮,为了方便我们观察程序是否真的自动升级了,如下:
接着,修改装配版本,只要比之前的1.0.0.0版本高就可以了,我设置成了1.0.0.5(记得重新生成项目或解决方案),如下:
将Debug文件夹中最新生成的两个文件拷贝至Debug_forbuilding文件夹,如下:
使用升级包创建工具-BY iFish,本例中将“更新选项1”面板中“默认文件检测更新模式”设置成了“始终更新”,具体设置如下(注意新版本目录与升级包目录的设置,当前版本号与程序应匹配):
设置完毕后,点击右下角的“创建升级包”按钮,就自动把需要升级的文件打包到之前我们部署的升级目录中了,这时就可以打开Debug_client文件夹中的可执行程序,进行测试了,如下:
使用SimpleUpdater实现WinForm自动升级-C#文档类资源-CSDN下载
FSLib.App.SimpleUpdater-C#文档类资源-CSDN下载
使用SimpleUpdater实现WinForm自动升级相关推荐
- Winform 自动升级程序
抽时间整理下升级这块的功能,并封装一个升级工具包. 作为winform 程序员都有一个C/S端程序绕不过的问题.那就是如何升级程序? 程序升级两种1.启动时强制更新 2.自动.手动获取更新,并确认是否 ...
- 在WinForm中使用Web Services 来实现软件自动升级(转)
一.升级的好处. 长期以来,广大程序员为到底是使用Client/Server,还是使用Browser/Server结构争论不休,在这些争论当中,C/S结构的程序的可维护性差,布置困难,升级不方便,维护 ...
- C#Winform程序如何发布并自动升级(图解)
有不少朋友问到C#Winform程序怎么样配置升级,怎么样打包,怎么样发布的,在这里我解释一下打包和发布 关于打包的大家可以看我的文章C# winform程序怎么打包成安装项目(图解) 其实打包是打包 ...
- 在WinForm中使用Web Service来实现软件自动升级
来源:互联网 winform程序相对web程序而言,功能更强大编程更方便,但软件更新却相当麻烦,要到客户端一台一台地升级,面对这个实际问题,在最近的一个小项目中,本人设计了一个通过软件实现自动升级技术 ...
- Winform自动更新组件分享
作者:圣殿骑士 出处:http://www.cnblogs.com/KnightsWarrior/ 关于作者:专注于微软平台项目架构.管理和企业解决方案.自认在面向对象及面向服务领域有一定的造诣, ...
- winform自动更新之AutoUpdater.NET
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/zhaobw831/article/details/82226291 使用AutoUpdater.NE ...
- C#实现软件自动升级
winform程序相对web程序而言,功能更强大,编程更方便,但软件更新却相当麻烦,要到客户端一台一台地升级,本文结合实际情况,通过软件实现自动升级,弥补了这一缺陷,有较好的参考价值. 由于程序在运行 ...
- CAutoupdater通用自动升级组件
CAutoupdater通用自动升级组件 1.CAutoupdater通用自动升级组件介绍 1.1.组件介绍 C/S构的特点是能充分发挥客户端的处理能力,很多工作可以由客户端处理后再提交给服务器,对 ...
- 【转载】插件自动升级
ESFramework介绍之(20)―― 插件自动升级 当我们的服务平台搭建成功后,所需要做的主要事情就是开发服务端功能插件(IFunAddin)和客户端插件(IPassiveAddin),每个插件对 ...
最新文章
- 【建模必备】遗传算法的基本原理与步骤(交叉)
- XMLHTTP.readyState的五种状态
- 删除用户的命令是什么mysql_mysql新添加用户与删除用户具体操作命令_MySQL
- 理解 .NET Platform Standard
- 创建失败_【阿里云主机】二级域名创建失败解决方法
- Android Task 相关
- JSP→Javabean简介设计原则、JSP动作、Javabean三个动作、Javabean四个作用域范围、Model1简介弊端、JSP状态管理、include动作指令、forword动作、param
- 熊猫烧香病毒源码及分析
- 锤子手机T2发布会PPT模板
- How to read Ext4 in Windows 10
- python 悬浮窗_python浮窗
- A detailed derivation for the Bias Variance tradeoff Decomposition
- Caused by: java.lang.RuntimeException: Font asset not found fonts/SYFZLTKHJW.TTF
- 微型计算机如今的cpu,第二章 微型计算机硬件组成1
- Docker学习(三):复杂软件安装-主从mysql及redis集群
- 30岁的问题,为什么有人说程序员只能干到30岁。
- 高大上的调音台,一秒变成调音师!
- 电子学会青少年软件编程 Python编程等级考试一级真题解析(判断题)2021年12月
- Chapter4、色调映射的一般方法
- 流程图规范(国家、ISO标准)