.NET使用SimpleUpdater实现WinForm自动升级

37 篇文章 1 订阅

**

作者官网:

作者官网:https://www.fishlee.net/soft/simple_autoupdater/usage.html

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();

            //检查更新===========使用SimpleUpdater
            bool 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文件夹中的可执行程序,进行测试了,如下:
在这里插入图片描述
在这里插入图片描述
至此,自动升级测试完毕!

制作升级包工具传送门:https://download.csdn.net/download/CGS_______/12060471

### 回答1: Winform自动升级开源是一个非常实用的工具,它可以使Winform程序实现自动升级的功能。这个开源项目主要通过修改Winform程序的代码,来实现程序的自动升级Winform自动升级开源项目的工作原理是,当程序需要更新时,在服务器上存储新的程序版本,并将程序的更新信息保存在本地数据库中。当用户打开程序时,程序会自动检查服务器上是否有新的版本,如果有,就会下载并安装新的版本。 Winform自动升级开源项目的优点是,它为Winform程序提供了一种简单、快速、可靠的自动升级的方式。同时它还具有开源项目的优点,即使任何人都可以参与开发和改进这个工具。 总之,Winform自动升级开源是一个非常有价值的工具,它可以大大提高Winform程序的更新效率和使用体验。虽然使用这个工具需要一定的技术水平,但是对于Winform程序开发人员而言,它是一个非常实用的开源项目。 ### 回答2: Winform自动升级是一种非常有用的工具,可以帮助开发人员自动升级他们的Windows应用程序。与传统的手动更新不同,自动升级可以让开发人员更快地将新功能和其他更新推送给终端用户。这样做不仅可以提高终端用户的使用体验,还可以解决一些潜在的安全问题。 开源的Winform自动升级工具使得开发人员可以更加灵活地调整和定制自动升级的设置,同时消除了一些私有的软件依赖,从而更加便于整合和管理。利用开源的自动升级工具,开发人员可以自由地编辑和定制软件升级的规则和过程,适应更多的应用场景和需求。另外,自动升级工具的开源还鼓励了更多的合作和共享,为整个软件开发生态系统带来更多的创新和进步。 总之,Winform自动升级开源是一种非常便于应用和开发的技术,其优势在于提高软件的可用性和安全性,同时在开发过程中也能够帮助开发者更好地管理和整合软件代码。我相信,在开源社区的积极参与和贡献下,这种技术将会不断地得到完善和改进,为软件行业的进步做出更大的贡献。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值