genUp4win是一个为Microsoft Windows环境设计的更新工具,旨在提供一个即用且可配置的更新器,用于下载并安装更新包。它利用URLDownloadToFile函数和PJ Naughter的AppSettings库,能够处理HTTPS协议和XML数据。
首先,需要填写程序的Product Version
(即产品的版本)和Product Name
(即产品的实际名称),如下所示截图:
第二步是生成配置文件,使用WriteConfigFile
函数。生成的结果应该如下所示:
<?xml version="1.0" encoding="UTF-16" standalone="no"?>
<xml>
<genUp4win>
<Version>1.0.0.0</Version>
<Download>https://www.moga.doctor/freeware/IntelliEditSetup.msi</Download>
</genUp4win>
</xml>
生成配置文件的C++代码如下:
const DWORD nLength = _MAX_PATH;
TCHAR lpszFilePath[nLength] = {0,};
GetModuleFileName(nullptr, lpszFilePath, nLength);
WriteConfigFile(lpszFilePath, MSI_OR_EXE_INSTALLATION_FILE);
请将配置文件上传到Web服务器。
第三步是检查更新,使用CheckForUpdates
函数。检查更新的C++代码如下:
const DWORD nLength = _MAX_PATH;
TCHAR lpszFilePath[nLength] = {0,};
GetModuleFileName(nullptr, lpszFilePath, nLength);
g_bNewUpdateFound = CheckForUpdates(lpszFilePath, XML_CONFIGURATION_FILE);
序列图如下:
Product Owner ->> Web Server: Upload Installation file
Product Owner ->> Web Server: Upload Configuration file
Web Server ->> PC(Client): Download Configuration file
Note right of PC(Client): Analyze the product's version from Web Server
Web Server ->> PC(Client): Download Installation file
genUp4win可以由程序启动或手动启动。它从XML配置文件中读取程序的当前版本和获取更新信息的URL,检查URL(带有给定的当前版本)以获取更新包的位置,下载更新包,然后运行更新包(应该是一个msi或exe)。