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文件夹中,为后续测试做准备

4.2 IIS创建网站(为测试升级做准备)

----或者使用WCF

创建网站,物理路径为存放升级包文件的目录,本例中将升级包放在了“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自动升级相关推荐

  1. Winform 自动升级程序

    抽时间整理下升级这块的功能,并封装一个升级工具包. 作为winform 程序员都有一个C/S端程序绕不过的问题.那就是如何升级程序? 程序升级两种1.启动时强制更新 2.自动.手动获取更新,并确认是否 ...

  2. 在WinForm中使用Web Services 来实现软件自动升级(转)

    一.升级的好处. 长期以来,广大程序员为到底是使用Client/Server,还是使用Browser/Server结构争论不休,在这些争论当中,C/S结构的程序的可维护性差,布置困难,升级不方便,维护 ...

  3. C#Winform程序如何发布并自动升级(图解)

    有不少朋友问到C#Winform程序怎么样配置升级,怎么样打包,怎么样发布的,在这里我解释一下打包和发布 关于打包的大家可以看我的文章C# winform程序怎么打包成安装项目(图解) 其实打包是打包 ...

  4. 在WinForm中使用Web Service来实现软件自动升级

    来源:互联网 winform程序相对web程序而言,功能更强大编程更方便,但软件更新却相当麻烦,要到客户端一台一台地升级,面对这个实际问题,在最近的一个小项目中,本人设计了一个通过软件实现自动升级技术 ...

  5. Winform自动更新组件分享

    作者:圣殿骑士  出处:http://www.cnblogs.com/KnightsWarrior/  关于作者:专注于微软平台项目架构.管理和企业解决方案.自认在面向对象及面向服务领域有一定的造诣, ...

  6. winform自动更新之AutoUpdater.NET

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/zhaobw831/article/details/82226291 使用AutoUpdater.NE ...

  7. C#实现软件自动升级

    winform程序相对web程序而言,功能更强大,编程更方便,但软件更新却相当麻烦,要到客户端一台一台地升级,本文结合实际情况,通过软件实现自动升级,弥补了这一缺陷,有较好的参考价值. 由于程序在运行 ...

  8. CAutoupdater通用自动升级组件

     CAutoupdater通用自动升级组件 1.CAutoupdater通用自动升级组件介绍 1.1.组件介绍 C/S构的特点是能充分发挥客户端的处理能力,很多工作可以由客户端处理后再提交给服务器,对 ...

  9. 【转载】插件自动升级

    ESFramework介绍之(20)―― 插件自动升级 当我们的服务平台搭建成功后,所需要做的主要事情就是开发服务端功能插件(IFunAddin)和客户端插件(IPassiveAddin),每个插件对 ...

最新文章

  1. 【建模必备】遗传算法的基本原理与步骤(交叉)
  2. XMLHTTP.readyState的五种状态
  3. 删除用户的命令是什么mysql_mysql新添加用户与删除用户具体操作命令_MySQL
  4. 理解 .NET Platform Standard
  5. 创建失败_【阿里云主机】二级域名创建失败解决方法
  6. Android Task 相关
  7. JSP→Javabean简介设计原则、JSP动作、Javabean三个动作、Javabean四个作用域范围、Model1简介弊端、JSP状态管理、include动作指令、forword动作、param
  8. 熊猫烧香病毒源码及分析
  9. 锤子手机T2发布会PPT模板
  10. How to read Ext4 in Windows 10
  11. python 悬浮窗_python浮窗
  12. A detailed derivation for the Bias Variance tradeoff Decomposition
  13. Caused by: java.lang.RuntimeException: Font asset not found fonts/SYFZLTKHJW.TTF
  14. 微型计算机如今的cpu,第二章 微型计算机硬件组成1
  15. Docker学习(三):复杂软件安装-主从mysql及redis集群
  16. 30岁的问题,为什么有人说程序员只能干到30岁。
  17. 高大上的调音台,一秒变成调音师!
  18. 电子学会青少年软件编程 Python编程等级考试一级真题解析(判断题)2021年12月
  19. Chapter4、色调映射的一般方法
  20. 流程图规范(国家、ISO标准)

热门文章

  1. 计算机论文写作提纲怎么写,计算机算法论文提纲 计算机算法论文大纲如何写...
  2. IOS证书获取(证书profile文件,p12私钥证书,证书私钥密码,Bundle ID)
  3. MySql随笔-常见的数据库对象
  4. 数据结构------最小生成树之Kruskal算法
  5. 性能调优-------(六)内存使用率高,5分钟如何快速排查问题(真实场景实战图文讲解)
  6. 山东ISO9001标准的特点和作用
  7. 排网站搞黑链 网站攻防
  8. 惠普M329打印机更换副厂硒鼓后提示墨粉不足并无法打印
  9. 计数排序的应用与分析
  10. 更改计算机图标,Win7如何修改桌面图标