基于.net framwork4.5.2开发的一款(c/s应用)自动升级程序。
将更新的核心部分抽离出来方便应用于多种项目当中目前适用于wpf,控制台应用,winfrom。相比以前更方便的是不需要在过分关注源码可直接通过nuget直接使用。
快速启动:
#region Launch1 args = new string[6] { "0.0.0.0", "1.1.1.1", "https://github.com/WELL-E", "http://192.168.50.225:7000/update.zip", @"E:\PlatformPath", "509f0ede227de4a662763a4abe3d8470", }; GeneralUpdateBootstrap bootstrap = new GeneralUpdateBootstrap();//自动更新引导类 bootstrap.DownloadStatistics += OnDownloadStatistics;//下载进度通知事件 bootstrap.ProgressChanged += OnProgressChanged;//更新进度通知事件 bootstrap.Strategy<DefultStrategy>().//注册策略,可自定义更新流程 Option(UpdateOption.Format, "zip").//指定更新包的格式,目前只支持zip Option(UpdateOption.MainApp, "your application name").//指定更新完成后需要启动的主程序名称不需要加.exe直接写名称即可 RemoteAddress(args).//这里的参数保留了之前的参数数组集合 Launch();//启动更新 #endregion #region Launch2 /* * Launch2 * 新增了第二种启动方式 * 流程: * 1.指定更新地址,https://api.com/GeneralUpdate?version=1.0.0.1 在webapi中传入客户端当前版本号 * 2.如果需要更新api回返回给你所有的更新信息(详情内容参考 /Models/UpdateInfo.cs) * 3.拿到更新信息之后则开始http请求更新包 * 4.下载 * 5.解压 * 6.更新本地文件 * 7.关闭更新程序 * 8.启动配置好主程序 * 更新程序必须跟主程序放在同级目录下 */ //GeneralUpdateBootstrap bootstrap2 = new GeneralUpdateBootstrap(); //bootstrap2.DownloadStatistics += OnDownloadStatistics; //bootstrap2.ProgressChanged += OnProgressChanged; //bootstrap2.Strategy<DefultStrategy>(). // Option(UpdateOption.Format, "zip"). // Option(UpdateOption.MainApp, ""). // RemoteAddress(@"https://api.com/GeneralUpdate?version=1.0.0.1").//指定更新地址 // Launch(); #endregion private static void OnProgressChanged(object sender, ProgressChangedEventArgs e) { if (e.Type == ProgressType.Updatefile) { var str = $"当前更新第:{e.ProgressValue}个,更新文件总数:{e.TotalSize}"; Console.WriteLine(str); } if (e.Type == ProgressType.Done) { Console.WriteLine("更新完成"); } } private static void OnDownloadStatistics(object sender, DownloadStatisticsEventArgs e) { Console.WriteLine($"下载速度:{e.Speed},剩余时间:{e.Remaining.Minute}:{e.Remaining.Second}"); }
自动升级 Contents Overview Update URL Update manifest Testing Advanced usage: request parameters Future work Advanced usage: minimum browser version 我们希望扩展能自动升级,理由和让chrome自动升级一样:修改程序bug和安全漏洞 ,增加新功能,提升性能,改
一、简介 本章节主要介绍PHPCMS V9程序升级方式 二、目录 离线升级 在线升级
SWarm mode 与滚动升级 在 部署服务 一节中我们使用 nginx:1.13.7-alpine 镜像部署了一个名为 nginx 的服务。 现在我们想要将 NGINX 版本升级到 1.13.12,那么在 Swarm mode 中如何升级服务呢? 你可能会想到,先停止原来的服务,再使用新镜像部署一个服务,不就完成服务的 “升级” 了吗。 这样做的弊端很明显,如果新部署的服务出现问题,原来的服务
然而,似乎什么也没发生。没有变化,控制台输出没有提到新版本(这就足够了)。 我的如下所示:
当有镜像发布新版本,新版本服务上线时如何实现服务的滚动和平滑升级? 如果你使用ReplicationController创建的pod可以使用kubectl rollingupdate命令滚动升级,如果使用的是Deployment创建的Pod可以直接修改yaml文件后执行kubectl apply即可。 Deployment已经内置了RollingUpdate strategy,因此不用再调用kub
在将Grails版本从2.3.6升级到2.4.5之后,我现在在运行Geb Spock测试时遇到了一个异常。 我记得在Grails 2.3.6中最初设置Geb时遇到过这个异常,其中BuildConfig和GebConfig文件没有正确配置。然而,在重新检查Geb所需的必要插件和依赖项时,我没有注意到Grails 2.4.5有任何不同。此外,我将依赖项解析从Ivy切换到Maven,因此我再次检查Mav