flutter开发windows桌面软件,使用Inno Setup打包成安装程序,支持中文

最近使用flutter开发windows桌面软件的时候,想要将软件打包成安装程序,使用了flutter官方推荐的msix打包,但是打包出来的软件生成的桌面快捷方式有蓝色背景:

这个蓝色背景应该是没有设置为动态导致的,windows系统的屏幕缩放比例改变也会导致这个蓝色背景改变,windows的主题设置改变,这个背景也会随着改变,我猜测应该是msxi没有适配这个改变,所以导致的有蓝色背景。官方推荐的msxi打包:https://flutter.cn/docs/deployment/windows

看了msxi的源码也没有看到有相关的配置,所以就换个打包工具使用。我这里将inno和中文包大包了一下,方便快速下载使用:inno setup 带中文包.zip - 蓝奏云

下载Inno Setup软件

需要到官网下载这个打包工具,然后默认安装选项即可:Inno Setup Downloads

点击下载安装,一气呵成。

配置中文

如果你需要使用中文版的安装包,就需要加载一个中文的语言包文件,官网默认不支持中文,github上有人开发了这个中文包,所以可以直接下载这个中文包,然后保存到inno setup安装的位置language里面:https://github.com/kira-96/Inno-Setup-Chinese-Simplified-Translation

中文包下载然后放到language下面:

新建一个打包脚本

然后根据提示点击下一步:

按图中的文字提示填入App的信息即可:软件名称,版本,公司,网站地址

点击下一步:添加安装文件夹名称

然后选择flutter编译后的exe程序:

Application main executable file: 此处指定flutter中打包出来的.exe文件路径 ~\build\windows\runner\Release\windows_test.exe
Other application files: 需要点击Add folder,添加~\build\windows\runner\Release\*文件夹,确保其它资源文件能打入安装包中,不然会出现 找不到Flutter_windows.dll文件,无法运行程序。

后续进行下一步配置:默认就行

继续下一步:允许创建菜单栏的图标和创建桌面快捷方式

配置安装协议、安装前介绍、安装后描述内容:可以为空

我创建了3个.txt文件,然后按需分别指定文件路径即可

需要注意.txt文件的编码格式,创建文件时默认是 UTF-8,打包安装后会出现乱码,需要将文件格式指定为UTF-8-boom格式。

配置安装模式:为所有用户安装或者询问

配置语言、应用图标、安装包文件输出路径等:

可以选择多个语言,我这里选择英文和中文

配置安装包导出路径、以及安装应用图标:

生成打包脚本:

可以将脚本保存下来,方便后面快速使用:

完成并打包

生成的脚本直接点击运行就可以打包,打包后的文件就存放在你设置的文件夹里面:

打包后的文件:

运行测试

点击安装程序,就可以正常使用了

使用这种方式安装好的程序就没有蓝色背景了:

相关推荐
初遇你时动了情1 天前
uniapp/flutter中实现苹果IOS 26 毛玻璃效果、跟随滑动放大动画
flutter·ios·uni-app
listhi5201 天前
Vue.js 3的组合式API
android·vue.js·flutter
起风了___1 天前
Flutter 多端音频控制台:基于 audio_service 实现 iOS、Android 锁屏与通知中心播放控制
前端·flutter
leinchu2 天前
Flutter + Codebuddy的坑
flutter
安卓开发者2 天前
第4讲:理解Flutter的灵魂 - “Everything is a Widget”
开发语言·javascript·flutter
起风了___2 天前
Flutter 全局音频播放单例实现(附完整源码)——基于 just_audio 的零依赖方案
前端·flutter
DreamMachine2 天前
Flutter 开发的极简风格音乐播放器
前端·flutter
星释2 天前
鸿蒙Flutter三方库适配指南:08.联合插件开发
flutter·华为·harmonyos
星释2 天前
鸿蒙Flutter三方库适配指南:06.插件适配原理
flutter·华为·harmonyos
小蜜蜂嗡嗡2 天前
【flutter报错:Build failed due to use of deprecated Android v1 embedding.】
android·flutter·embedding