软件自动升级程序AutoUpgrader优化:获取最新升级包|C/S开发框架

软件自动升级程序CSFramework.AutoUpgrader优化完成,CheckVersion方法由原来的临时文件方式更改为通过.NET反射机制调用DLL的方法。
解决方案
UpgraderController.cs 新增一个函数
VS打开 CSFramework.AutoUpgrader 解决方案,在UpgraderController.cs 新增一个函数:
C# 全选
/// <summary>
/// 检查是否有新的升级包
/// </summary>
/// <returns>返回升级包数量</returns>
public int GetNewlyPackageCount()
{
UpgraderConfig.ReadConfig();//读取本地配置
IDownloader download = CreateDownloader();//创建升级策略
if (download.TestConnection())//测试连接数据库
{
IList files = download.GetServerPackageFile();//获取最新的升级包
var log = "检测可下载升级包数:" + files.Count.ToString();
UpgraderLog.AddLog(log);
//UpgraderLogDB.AddLog("CheckPkg", log);
return files.Count;
}
else
{
UpgraderLog.AddLog("连接版本升级服务器失败!");
throw new Exception("连接版本升级服务器失败!");
}
}
VersionCheckNEW.cs 替换CheckVersion方法的代码
VS打开主程序,找到VersionCheckNEW.cs文件,替换CheckVersion方法
C# 全选
/// <summary>
/// 检查更新,有更新要退出主程序
/// </summary>
/// <param name="AppExit">退出应用程序</param>
public static void CheckVersion(ref bool AppExit)
{
AppExit = false;
try
{
string upgraderPath =Path.Combine(Application.StartupPath,DEF_UPGRADER_NAME);
//获取升级程序的程序集
byte[] fileData = File.ReadAllBytes(upgraderPath);
Assembly upgrader = Assembly.Load(fileData);
//通过.NET反射机制创建UpgraderController实例
Type t = upgrader.GetType(DEF_UPGRADER_CONTROLLER);
object o = t.Assembly.CreateInstance(t.FullName);
//获取升级包数量
MethodInfo M = t.GetMethod("GetNewlyPackageCount");
object ret = M.Invoke(o, null);
int count = ConvertEx.ToInt(ret);
frmWaitingEx.HideMe(null);
if (count > 0)//有新版本,升级包的文件数>0
{
AppExit = true;
//启动通用升级程序(商业版)。程序参数:MainEXECall YourERP.exe
Process.Start(upgraderPath, Arg_MainEXECall + " " + DEF_MAIN_PROGRAM_NAME);
}
}
catch (Exception ex)
{
dalLog.AddLog(ex);
Msg.ShowError("检查版本失败!CheckVersion:" + ex.Message);
}
}

参考文档:
Winform C/S架构自动升级程序 AutoUpgraderV1.2迭代记录|C/S开发框架
CSFrameworkV6旗舰版 | AutoUpgrader自动升级程序支持3种数据库|C/S开发框架
CSFrameworkV6软件开发框架+达梦数据库(国产数据库)测试报告|C/S开发框架
CSFrameworkV6软件开发框架 | MySql数据库测试报告|C/S开发框架
CSFrameworkV6软件开发框架 | Oracle数据库测试报告|C/S开发框架
CSFrameworkV6快速开发框架 | SqlServer(MsSql)数据库测试报告|C/S开发框架
企业级C/S系统快速开发框架(Winform+.NET8+EFCore)|C/S开发框架
最新MES系统快速开发平台(Winform+NET8+EFCore)|C/S开发框架
Oracle数据库备份、还原操作指南|C/S开发框架
EFCore+Scheme(数据库架构)实现分库分表支持多种主流数据库解决方案|C/S开发框架
CSFrameworkV6删除全部Demo功能整合一套纯净版开发框架|C/S开发框架
C/S架构软件开发平台V6旗舰版 | 客户端运行环境需要的程序文件|C/S开发框架
CSFrameworkV6 试用版(Trial Version)开发指南|C/S开发框架
Winform软件开发框架|快速开发平台推荐|C/S开发框架
CSFrameworkV6旗舰版 | Oracle数据库笔记|C/S开发框架
C/S架构软件开发平台 | 旗舰版V6.1 | 新功能汇总|C/S开发框架
Winform C/S架构自动升级程序 AutoUpgraderV1.2迭代记录|C/S开发框架
CSFrameworkV6旗舰版 | AutoUpgrader自动升级程序支持3种数据库|C/S开发框架
CSFrameworkV6软件开发框架+达梦数据库(国产数据库)测试报告|C/S开发框架
CSFrameworkV6软件开发框架 | MySql数据库测试报告|C/S开发框架
CSFrameworkV6软件开发框架 | Oracle数据库测试报告|C/S开发框架
CSFrameworkV6快速开发框架 | SqlServer(MsSql)数据库测试报告|C/S开发框架
企业级C/S系统快速开发框架(Winform+.NET8+EFCore)|C/S开发框架
最新MES系统快速开发平台(Winform+NET8+EFCore)|C/S开发框架
Oracle数据库备份、还原操作指南|C/S开发框架
EFCore+Scheme(数据库架构)实现分库分表支持多种主流数据库解决方案|C/S开发框架
CSFrameworkV6删除全部Demo功能整合一套纯净版开发框架|C/S开发框架
C/S架构软件开发平台V6旗舰版 | 客户端运行环境需要的程序文件|C/S开发框架
CSFrameworkV6 试用版(Trial Version)开发指南|C/S开发框架
Winform软件开发框架|快速开发平台推荐|C/S开发框架
CSFrameworkV6旗舰版 | Oracle数据库笔记|C/S开发框架
C/S架构软件开发平台 | 旗舰版V6.1 | 新功能汇总|C/S开发框架
其它资料:
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 |
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 |
在线客服
