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

Windows .exe文件是否支持仅使用三位数字的版本号方案?

问题根因
  • Windows的VERSIONINFO资源的固定二进制头部的FILEVERSION、PRODUCTVERSION字段强制要求为4个16位整数,格式为主版本,次版本,修订版,编译号。你仅填写了3个数值,RC编译器在编译资源时会自动补第4位为0,因此二进制版本字段最终存储的是VERSION_MAJOR,VERSION_MINOR,VERSION_PATCH,0。
  • 旧版本Windows资源管理器的默认版本展示逻辑优先读取二进制固定头的版本值,因此会显示为1.0.0.0,你在StringFileInfo区块设置的字符串版本值默认不会被旧版系统直接调用展示。
解决方案

方案1:应用内自行读取版本展示(适配所有场景,推荐)

业务层面的三位版本规则属于上层业务约定,无需修改系统底层逻辑:

  • 代码中直接读取StringFileInfo区块下的ProductVersion字符串值,在应用的关于页、更新提示等面向用户的场景使用该值即可,完全符合你的三位版本规则要求。

方案2:修正RC资源的隐性补全逻辑

明确将第四位版本号写在RC配置中,避免RC编译器自动补全的不可控问题:

// 明确指定第四位为0,替代RC的隐性补全逻辑
FILEVERSION VERSION_MAJOR,VERSION_MINOR,VERSION_PATCH,0
PRODUCTVERSION VERSION_MAJOR,VERSION_MINOR,VERSION_PATCH,0

注:Windows 10及以上版本的资源管理器属性页,已调整为优先展示StringFileInfo下的字符串版本值,只要你的VERSION_STR定义为三位格式,在新版系统上系统属性页也会直接展示三位版本号。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 20:18:03