You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Inno Setup提取应用版本号(排除第四位数字)

在Inno Setup编译阶段提取可执行文件信息的实践

我一直在琢磨怎么在安装包编译期间,通过API调用从可执行文件里提取关键信息——比如在Inno Setup的Setup区段中使用GetStringFileInfo函数。目前我的ISPP脚本片段是这样的:

[ISPP]
; 若不清楚操作,请勿手动编辑此区段。
#define DataDir "{userappdata}\Meeting Schedule Assistant"
#define CommonDataDir "{commonappdata}\Meeting Schedule Assistant"
#define AppVerText "18.1...."

让版本信息自动提取的小技巧

你看现在AppVerText是手动硬编码的版本号,其实可以用GetStringFileInfo动态从目标可执行文件里提取,不用每次更新版本都手动改脚本。比如改成这样:

[ISPP]
; 若不清楚操作,请勿手动编辑此区段。
#define DataDir "{userappdata}\Meeting Schedule Assistant"
#define CommonDataDir "{commonappdata}\Meeting Schedule Assistant"
; 从目标EXE中自动提取产品版本
#define AppVerText GetStringFileInfo("MeetingScheduleAssistant.exe", "ProductVersion")

几个要注意的点

  • 要确保GetStringFileInfo的第一个参数是可执行文件的正确路径,相对路径的话要保证编译时能找到这个文件;
  • 第二个参数是文件版本资源里的字段名,常用的还有FileVersion、ProductName、CompanyName这些,按需替换就行;
  • 如果文件路径里包含空格,记得用双引号把整个路径括起来。

这样每次编译安装包时,版本信息都会自动从你的程序EXE里拉取,既省事儿又能避免版本号不一致的问题。

内容的提问来源于stack exchange,提问作者Andrew Truckle

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 12:03:00