如何修改Flutter Windows打包生成的.exe文件版本号
Flutter Windows端exe可执行文件版本号修改方案
修改pubspec.yaml版本后不生效是正常现象,Flutter Windows端的exe版本号并不直接读取pubspec配置,需要单独修改Windows侧的资源配置文件,具体操作如下:
手动修改步骤
- 进入项目的
windows/runner目录,找到Runner.rc文件,用文本编辑器打开 - 搜索定位到版本定义段,修改以下4个参数的数值即可:
// 文件版本,四个数字用英文逗号分隔 #define VER_FILEVERSION 2,1,3,0 // 文件版本字符串,末尾的\0不要删除 #define VER_FILEVERSION_STR "2.1.3.0\0" // 产品版本,和文件版本保持一致即可 #define VER_PRODUCTVERSION 2,1,3,0 // 产品版本字符串 #define VER_PRODUCTVERSION_STR "2.1.3.0\0" - 保存文件后,先执行
flutter clean清理旧的构建缓存,再运行flutter build windows重新打包,生成的exe就会显示新的版本号。
自动同步pubspec版本的方法
如果不想每次都手动修改两个配置,可以自己写一个简单的Dart脚本做同步:
- 根目录新建
sync_windows_version.dart,逻辑为读取pubspec.yaml中的version字段,拆分出版本号的数字段,替换Runner.rc中对应的版本参数 - 每次打包前先执行
dart run sync_windows_version.dart,再执行构建命令即可自动同步版本。
注意事项
- 不要修改
build/windows目录下的任何文件,该目录每次构建都会被完全覆盖,修改不会生效 - 如果你后续会制作exe安装包,需要同时修改安装包配置文件(比如Inno Setup的iss脚本、NSIS的nsi脚本)中的版本号,避免安装程序显示的版本和exe本体版本不一致。
内容的提问来源于stack exchange,提问作者R.Mendoza
相关产品推荐
相关产品推荐

