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 文件中将这三个文件加进去。

相关推荐
z落落7 小时前
C#WinForm 窗体切换与窗体传值(登录跳转案例)+WinForm 窗体传值(从上往下传、从下往上传)
开发语言·windows·c#
Dontla8 小时前
git bash打开Claude code报错:Claude Code on Windows requires git-bash.(别把git装其他位置,严格按照默认安装)找不到claude code
windows·git·bash
comcoo9 小时前
电脑自动干活不用值守!OpenClaw 本地部署完整实操流程
windows·开源·github·open claw部署·open claw部署包
蓝鸟19749 小时前
Windows Route 内外网双通原理+实战详解(彻底解决双网卡互斥断网)
windows·网络运维·电脑网络配置·路由冲突解决·route命令·内外网同时上网·windows路由 双网卡双通
愚者Pro10 小时前
切换本地 Flutter SDK 版本
flutter
2601_9618454210 小时前
法考真题及答案解析|历年真题|资料已整理
linux·windows·ubuntu·macos·centos·gnu
TT_Close11 小时前
别再复制旧 Flutter 工程了,真正拖慢你的不是业务代码
flutter·npm·visual studio code
coolwaterld12 小时前
windows下删文件,找出“到底是谁占用
windows
风华圆舞12 小时前
鸿蒙 + Flutter 下 AI 助手为什么要支持流式输出
人工智能·flutter·harmonyos
私人珍藏库14 小时前
【Android】VLLO-韩国热门手机剪辑APP
android·app·工具·软件·多功能