本文中,我们将会使用 Inno Setup 这个软件来为 Flutter 应用创建 Windows 安装包。
首先安装 Inno Setup 这个软件, 在 Inno Setup Downloads 下载安装 Inno Setup,下载地址在这里
https://jrsoftware.org/isdl.php
使用命令行编译 Flutter APP 的 Windows 版本
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
效果
解决该问题,首先需要在开发机上(编译所用的 Windows 电脑),从 C:/Windows/System32
目录下找到这个文件,拷贝到项目的 windows
目录中
然后在 windows/CMakeLists.txt
文件中添加以下内容
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
文件中将这三个文件加进去。