UE中记:静默自更新插件(多路径部署

自动更新系统原理说明文档

概述

本自动更新系统是一个基于Node.js的应用程序,用于自动检查、下载、解压并安装软件更新。它由多个脚本和一个更新服务器组成,能够在后台自动执行更新流程,确保软件保持最新状态。

组件说明
  • SetUp.bat: 主批处理脚本,用于检查管理员权限,若无权限则请求提升,然后调用.\UpdateClient\SetUp.bat
  • .\UpdateClient\SetUp.bat: 更新客户端的批处理脚本,用于安装必要的Node.js模块并执行installService.js
  • installService.js: Node.js脚本,创建服务来监控和执行更新操作,复制必要的脚本到临时目录,并将当前路径添加到_paths_.ini文件。
  • checkAndUpdate.js: Node.js脚本,检查更新信息,下载并解压更新包,执行更新安装脚本或重启软件。
  • SetUpTemp.bat: 临时批处理脚本,用于在临时目录中安装必要的Node.js模块。
  • update-server.js: 更新服务器的Node.js脚本,提供更新信息和更新文件的下载。
工作流程
  1. 权限检查与提升: SetUp.bat 检查是否以管理员权限运行,若不是,则创建VBS脚本提升权限。
  2. 初始化更新客户端: SetUp.bat 调用 .\UpdateClient\SetUp.bat,该脚本安装必要的Node.js模块并执行 installService.js
  3. 服务安装与启动: installService.js 创建一个Windows服务,用于执行更新检查和安装。同时,将当前软件路径添加到 paths.ini 文件以供后续使用。
  4. 更新检查: checkAndUpdate.js 从更新服务器获取最新的更新信息,如果发现新版本,则继续下载更新。
  5. 下载更新: 更新文件通过HTTP请求从服务器下载到本地。
  6. 解压更新: 下载的ZIP文件被解压到指定的目录。
  7. 安装更新: 解压后的文件通过执行 SetUp.bat 脚本安装或通过重启软件应用更新。
  8. 更新服务器: update-server.js 运行一个简单的HTTP服务器,提供更新信息和更新文件的下载。
调用关系图
+----------------+      +----------------------+
| SetUp.bat      |      | .\UpdateClient       |
| (主批处理)      +----->+ SetUp.bat            |
+----------------+      | (更新客户端批处理)    |
                        +----------+-----------+
                                   |
                                   v
                        +----------+-----------+
                        | installService.js    |
                        | (安装服务Node脚本)    |
                        +----------+-----------+
                                   |
                                   v
                        +----------+-----------+
                        | checkAndUpdate.js    |
                        |(检查和应用更新Node脚本)|
                        +----------+-----------+
                                   |
                                   v
                        +----------+-----------+
                        | SetUpTemp.bat        |
                        | (临时目录Node模块安装) |
                        +----------------------+
在这个流程图中,update-server.js不直接参与自动更新的客户端流程。它独立运行,提供必要的更新文件和元数据。以下是update-server.js的位置和作用:

+-----------------------+
| update-server.js      |
| (更新服务器Node脚本)   |
| 托管更新文件和元数据    |
+-----------------------+
update-server.js运行在服务器端,客户端通过checkAndUpdate.js与之通信,获取更新信息并下载更新包。

注意事项

  • 在执行更新流程之前,确保所有脚本和服务都已经正确配置。
  • 更新服务器应始终可用,以便客户端可以检查和下载更新。
  • 确保更新过程不会干扰到正在运行的应用程序的正常使用。
  • 更新脚本应具有错误处理机制,以应对下载失败、文件解压错误等异常情况。

你可能感兴趣的:(UE)