程序打包(安装包制作,Inno setup打包教程,QT程序打包)
Posted 紫夜君
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了程序打包(安装包制作,Inno setup打包教程,QT程序打包)相关的知识,希望对你有一定的参考价值。
一、简介
本文主要讲述如何将QT程序打包成安装包,提供给其他人使用。(打包其他程序同理)
二、准备阶段:
2.1 下载并安装打包工具
密码:id09
2.2 将QT程序DLL快速关联
例如,我已经成功demo.exe程序关联好dll。
返回上一层目录
该目录中:
Applications:存放程序的运行环境
License:存放软件的相关协议声明
ReleaseNote:编写了程序的相关更新说明
接下来,我们需要对这三个文件进行打包。
三、打包教程:
3.1 打开安装好的Inno setup软件。会自动弹出欢迎界面,选择用脚本向导创建新的脚本文件。
如果没有出现该界面,可以选择右上角的 文件→新建
3.2 同样可以打开 Inno Setup 脚本向导, 在对话框中点击 下一步
3.3 在 应用程序信息 中填写安装包的相关信息,其中加粗部分为必填。之后点击 下一步
3.4 在 应用程序文件夹 中保持默认即可,直接点击 下一步
3.5 在 应用程序文件中 点击 浏览,选择需要执行的EXE程序
在 应用程序文件中 点击 添加文件夹,将 Applications文件夹选中后点击 确定
之后会弹出提醒框,点击 确定 即可
同理,将License文件夹加入,该步骤 略,和上面相同。
之后选择 添加文件,将ReleaseNote.txt选中。
成功完成以上步骤后,结果如下,点击下一步。
3.6 在 应用程序快捷方式 依据相关需求,勾选后点击 下一步
3.7 在 应用程序文档 中直接点击下一步(PS:如果有相关需求,自行添加即可)
3.8 在 安装程序模式 中勾选相应内容后点击下一步
3.9 在 安装语言 中勾选相应内容后点击下一步
3.10 在 编译配置中 自行输入相关内容后点击下一步。
自定义编译器输出文件夹:这是安装包的存放路径
编译器输出基本文件名:这是安装包的名字
自定义安装程序图标文件:随便选择一张ico图片,将作为安装包的图标。
安装密码:依照需求选填。
3.11 在 Inno Setup 预处理器 勾选 是 后点击 下一步
3.12 点击 完成 即可
3.13 完成出现编译提醒,点击是
3.14 选择一个文件夹用于存放脚本后等待编译 完成 即可
3.15 编译完成后 在 3.10步骤选择的文件夹中 找到编译完成的安装包程序
四、测试
4.1 双击 demo_setup.exe,选择 仅为当前用户安装
4.2 选择好 安装路径后 点击 下一步
4.3 保持默认不变,直接点击 下一步
4.4 勾选 创建桌面快捷方式 后点击 下一步
4.5 点击 安装
4.6 点击 完成
后程序将自动运行
同时观察桌面,已经成功生成了相关的快捷方式,双击快捷方式也能够正常运行程序
五、问题及优化
问题一:
进入到项目的安装路径中,发现文件已经乱成一锅粥
这和我们需要的安装后的文件路径完全不一样,以下是我们希望安装后呈现的文件排列方式
问题二:
在项目路径中可以看到,卸载程序的名字为unins000.exe。
问题三:
进入到控制面板中的程序和功能页面,会发现Demo的卸载项是没有图标的
5.1 脚本代码优化
为了解决以上两个问题,我们需要对代码进行优化修改。
对于问题一:
首先找到 [Files] 并将原命令进行修改:
原
新
之后找到 [Icons] 并将命令进行修改
原:
新:
之后再找到 [Run] 并将命令进行修改
原:
新:
修改后点击运行
安装后的结果:
对于问题二:
可以在 [Run] 之后加入以下代码
[CODE]
procedure CurStepChanged(CurStep: TSetupStep);
var
uninspath, uninsname, NewUninsName, MyAppName: string;
begin
if CurStep=ssDone then
begin
// 指定新的卸载文件名(不包含扩展名),请相应修改!
NewUninsName := 'uninstall_Demo';
// 应用程序名称,与 [SEUTP] 段的 AppName 必须一致,请相应修改!
MyAppName := 'Demo';
// 以下重命名卸载文件
uninspath:= ExtractFilePath(ExpandConstant('{uninstallexe}'));
uninsname:= Copy(ExtractFileName(ExpandConstant('{uninstallexe}')),1,8);
RenameFile(uninspath + uninsname + '.exe', uninspath + NewUninsName + '.exe');
RenameFile(uninspath + uninsname + '.dat', uninspath + NewUninsName + '.dat');
// 以下修改相应的注册表内容
if RegKeyExists(HKEY_LOCAL_MACHINE, 'SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\' + MyAppName + '_is1') then
begin
RegWriteStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\' + MyAppName + '_is1', 'UninstallString', '"' + uninspath + NewUninsName + '.exe"');
RegWriteStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\' + MyAppName + '_is1', 'QuietUninstallString', '"' + uninspath + NewUninsName + '.exe" /SILENT');
end;
end;
end;
结果:
对于问题三:
只需要在脚本中 [Setup] 下加入一下两条命令,即可生成卸载图标
安装后的结果:
以上是关于程序打包(安装包制作,Inno setup打包教程,QT程序打包)的主要内容,如果未能解决你的问题,请参考以下文章
程序打包(安装包制作,Inno setup打包教程,QT程序打包)
开源Inno Setup官网下载安装打包教程(官网安装向导中文语言包)