Flutter应用Windows安装包创建教程

TOC

本文中,我们将会使用 Inno Setup 这个软件来为 Flutter 应用创建 Windows 安装包。

安装 Inno Setup

首先安装 Inno Setup 这个软件, 在 Inno Setup Downloads 下载安装 Inno Setup,下载地址在这里

arduino 复制代码
https://jrsoftware.org/isdl.php

创建 Windows 安装包

编译 Flutter APP

使用命令行编译 Flutter APP 的 Windows 版本

bash 复制代码
flutter build windows --release

这里输出的 build/windows/runner/Release 目录就是编译好的软件目录。

创建安装包脚本

打开 Inno Setup,选择 Create a new script file using the Script Wizard

然后点击 "下一步",在下面这个页面,填写应用的基本信息

下一步,修改应用文件夹名称

然后就进入到了比较关键的页面了,下面的页面中,选择应用包含的文件

注意上图中 ①②③ 的说明:

  • ① 选择应用的可执行文件,在项目目录的 build/windows/runner/Release/应用名称.exe

  • ② 添加应用包含的 dll 文件,这里选择的是 Release 目录下最外层的 dll 文件

  • ③ 选择 Release 目录下的 data 目录

    ⚠️ 在添加完目录后,需要选中目录,点击 Edit,设置目标子文件夹为 data

然后点击下一步,不需要关联文件类型

下一步,允许用户创建桌面快捷方式

接下来选择应该应用的文档,没有的话可以直接跳过

接下来就是选择安装模式,默认 "使用个管理员安装模式",安装后,系统中所有用户都可以使用 APP

再次点击下一步,选择语言,然后下一步,这里设置输出文件夹,文件名,应用 Logo 等信息

最后一路点击下一步,直到完成,保存脚本为 install.iss 文件。

打包

打开创建好的 install.iss 文件,在 Inno Setup Complier 中,点击"编译"按钮,就可以开始应用的打包了。

输出下面的信息,说明打包完成了,在输出目录中就可以看到打包好的应用安装包了。

如下图所示,双击安装包就可以愉快的安装了

常见问题

如何设置默认勾选 "创建桌面快捷方式"

install.iss 文件中,将下图中的 Flags 设置为 checkablealone

效果

启动应用后,报错缺少 msvcp140.dll、vcruntime140.dll、vcruntime140_1.dll 文件

解决该问题,首先需要在开发机上(编译所用的 Windows 电脑),从 C:/Windows/System32 目录下找到这个文件,拷贝到项目的 windows 目录中

然后在 windows/CMakeLists.txt 文件中添加以下内容

bash 复制代码
install(FILES "msvcp140.dll" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}"
  CONFIGURATIONS Profile;Release
  COMPONENT Runtime)

install(FILES "vcruntime140.dll" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}"
  CONFIGURATIONS Profile;Release
  COMPONENT Runtime)

install(FILES "vcruntime140_1.dll" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}"
  CONFIGURATIONS Profile;Release
  COMPONENT Runtime)

然后重新编译应用即可,需要注意的是,不要忘记在 Inno Setup 脚本 install.iss 文件中将这三个文件加进去。

相关推荐
SoaringHeart1 小时前
Flutter最佳实践:路由弹窗终极版NSlidePopupRoute
前端·flutter
洛豳枭薰3 小时前
List梳理
数据结构·windows·list
东木月3 小时前
使用python获取Windows产品标签
开发语言·windows·python
kirk_wang4 小时前
Flutter艺术探索-Flutter自定义组件:组合与封装技巧
flutter·移动开发·flutter教程·移动开发教程
消失的旧时光-19435 小时前
BLoC vs Riverpod:命令式系统 与 声明式系统的两条架构路线
flutter·架构
小范馆5 小时前
解决 Windows 11 安装时提示 “不支持 TPM 2.0” 和 “不支持安全启动” 的问题
windows·安全
还下着雨ZG5 小时前
【Window技能 01】每天自动关机:使用CMD脚本+任务计划程序实现每天定时关闭计算机
windows
洛水如云6 小时前
重塑数据管理逻辑!文件夹同步的实用指南(含工具选型 + 实操步骤)
windows·microsoft·电脑
石像鬼₧魂石6 小时前
windows系统139/tcp与445/tcp端口渗透完整流程闭环(复习总结)
windows·网络协议·tcp/ip
奋斗的小青年!!6 小时前
Flutter跨平台开发适配OpenHarmony:下拉刷新组件的实战优化与深度解析
flutter·harmonyos·鸿蒙