检测基于Inno Setup编译的可执行文件所支持的Windows操作系统版本
嘿,针对你手里的这两个旧Inno Setup安装包,我有几个实用的方法帮你确定它们支持的Windows版本,都是不用跳外链的本地操作,很安全:
用Inno Setup Compiler直接查看配置
如果你还没装Inno Setup,可以下载最新版的(放心,免费开源),打开Inno Setup Compiler后,点击菜单栏的File->Open,选中你的旧安装包。打开后切换到Setup标签页,找MinVersion和OnlyBelowVersion这两个参数——它们就是安装包定义的最低支持版本和最高支持版本(如果设置了的话)。举个例子:MinVersion=5.1对应Windows XP,6.0对应Vista,6.1对应Win7,10.0对应Windows 10,版本号对应关系很直观。用命令行快速提取信息
要是不想打开GUI编译器,也可以用Inno Setup自带的命令行工具ISCC.exe。打开命令提示符,切换到Inno Setup的安装目录(一般是C:\Program Files (x86)\Inno Setup 6),然后执行命令:ISCC /dump 你的安装包文件名.exe执行后会输出一堆配置信息,你直接找
MinVersion和OnlyBelowVersion的条目就行,里面的数值就是对应的系统版本。用资源查看工具读取内嵌信息
用Windows自带的Resource Hacker(或者其他类似的资源编辑器)也能搞定。打开Resource Hacker后加载你的安装包,展开左侧的STRINGTABLE->0->1033(这个是英文语言的ID,如果你的安装包是其他语言,可能对应不同的数字),然后在右侧的字符串列表里找包含MinVersion的项,就能看到对应的系统版本限制了。虚拟机实测(最稳妥的验证方式)
如果上面的方法都没找到明确的版本限制,或者你想确认实际运行的兼容性,那最好找不同版本的Windows虚拟机来测试——比如WinXP、Vista、Win7的虚拟机,依次尝试安装这两个旧包,看哪个系统能正常安装运行,哪个会报错。毕竟有些旧安装包可能依赖特定系统组件,即使配置里没写死版本,实际运行也会有兼容性问题。
备注:内容来源于stack exchange,提问作者Andrew Truckle

