inno setup打包脚本总结
inno setup是比较简单好用的一款打包工具。
下面以打包HelloWorld.exe为例进行说明。
一、打包目录的建立
- 创建source目录:用于放置主程序、依赖dll、资源等待打包文件。
- 创建output目录:用于存放生成的安装包。
- HelloWorld.iss:使用inno setup向导生成的打包脚本。
如下所示:
进行打包时,只需要编译HelloWorld.iss,就可以了。
二、修改脚本
使用向导生成的脚本HelloWorld.iss,内容如下:
; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!#define MyAppName "Hello World App"
#define MyAppVersion "1.5"
#define MyAppPublisher "My Company, Inc."
#define MyAppURL "http://www.example.com/"
#define MyAppExeName "HelloWorld.exe"[Setup]
; NOTE: The value of AppId uniquely identifies this application. Do not use the same AppId value in installers for other applications.
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
AppId={{9AE31757-84AA-4D2F-9CB3-AF1CB2DB0AF4}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={autopf}\{#MyAppName}
DisableProgramGroupPage=yes
; Uncomment the following line to run in non administrative install mode (install for current user only.)
;PrivilegesRequired=lowest
OutputDir=D:\test\output
OutputBaseFilename=mysetup
Compression=lzma
SolidCompression=yes
WizardStyle=modern[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked[Files]
Source: "D:\test\source\HelloWorld.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "D:\test\source\Qt5Core.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "D:\test\source\translations\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
; NOTE: Don't use "Flags: ignoreversion" on any shared system files[Icons]
Name: "{autoprograms}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
Name: "{autodesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon[Run]
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent
一般情况下,脚本不修改,也可以,只是有一些不足的地方。
我们也可以进行部分修改,然后定制一些功能。
1、绝对路径改为相对路径
如果我们的打包脚本需要进行提交上库的话,使用绝对路径,由于大家本地路径不一致,所以,这个脚本会被反复修改,很麻烦。使用相对路径来解决这个问题。
输出目录
OutputDir=D:\test\output
修改为:
OutputDir=output
输入目录
[Files]
Source: "D:\test\source\HelloWorld.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "D:\test\source\Qt5Core.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "D:\test\source\translations\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
修改为:
[Files]
Source: "source\HelloWorld.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "source\Qt5Core.dll"; DestDir: "{app}"; Flags: ignoreversion
Source: "source\translations\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
2、开始菜单中建立文件夹
默认是没有放在文件夹中的,如下:
我们在[Setup]下添加如下一行,表示文件夹名称为"Hello World App"
DefaultGroupName={#MyAppName}
并在[Icons]下添加如下一行,表示在"Hello World App"文件夹下创建一个名为Hello World App的快捷方式,它指向的文件为Filename中指定的HelloWorld.exe,其工作目录为{app}指向的应用程序安装目录
Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; WorkingDir:"{app}"
修改后的脚本:
重新编译,安装后效果,如下:
3、修改为默认创建桌面快捷方式
安装过程中,默认是不勾选创建快捷方式的,如下:
若需要默认就勾选。那么修改[Tasks]下,Flags的值。
Flags值
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
修改为:
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: checkablealone
重新编译,安装时默认勾上,如下:
4、添加卸载菜单
在[Icons]下添加如下一行
Name: "{group}\{cm:UninstallProgram,{#MyAppName}}"; Filename: "{uninstallexe}"
修改后的脚本:
重新编译,安装后效果,如下:
若对你有帮助,欢迎点赞、收藏、评论,你的支持就是我的最大动力!!!
同时,阿超为大家准备了丰富的学习资料,欢迎关注公众号“超哥学编程”,即可领取。
本文涉及测试用脚本及文件,公众号回复:InnoSetup打包测试脚本,即可下载。
inno setup打包脚本总结相关推荐
- Inno Setup 打包脚本笔记
Inno Setup 打包脚本总结 1.1. 脚本段 1.1.1. #define宏定义常量 1.1.2. [Setup] 1.1.3. AppId 1.1.3.1. ShowLanguageDial ...
- inno setup 打包脚本学习
INNO SETUP 学习心得 1.脚本结构 1.[Setup] 段 这个段包括了安装和卸载程序所使用的全局设置,并且有些关键字在你建立的安装程序中是必须要用到的. 2.[Dirs] 段 这个段是可选 ...
- Inno setup 打包教程
inno setup 是较常用且简单的软件打包工具. 1.安装并打开 inno setup 软件 ① 运行环境 系统:Windows 7 软件:inno setup 5.5.5 ② 安装 inno s ...
- Inno setup打包软件安装
Inno setup打包软件特点是开源.简单.重点还是免费的. 软件下载官网 https://jrsoftware.org/isinfo.php 界面汉化包地址:https://jrsoftware. ...
- Inno Setup 打包发布exe程序的步骤及注意事项及解决发布后的exe解压后文件都在主目录下导致程序无法正常运行的问题
目录 一.链接.exe文件的.dll动态链接库 1.1.可以利用QT官网提供的工具windeployqt 生成方式见如下: 1.2.使用脚本文件 二.使用绿色汉化版打包小程序inno setup5.5 ...
- inno setup打包软件学习
目录 一 打包结果 二 示例打包脚本 三 错误解决 3.1 另一个程序正在使用此文件,进程无法访问 3.2 桌面图标无法修改 四 参考资料 一 打包结果 测试程序来自: 泽森科工 (zenuste ...
- inno setup打包程序安装出现CreateProcess failed;code 740
问题: 使用inno setup打包我们发布的程序test.exe,在安装结束后,勾选了Launch xxx运行程序,然后出现如下报错: Unable to execute file:xxx Crea ...
- Inno setup打包vc++运行库
windows下打包应用程序,基本都要依赖vc++运行库,打包工具使用的Inno setup,记录一下inno setup打包vc运行库的方法 下载地址 https://support.microso ...
- Inno Setup 打包的文件以管理员权限运行
近期发现一个问题,就是Inno Setup打包的程序安装完成后运行需求管理员权限的程序的时候会失败( inno createprocess 需要提升),解决这个问题的最简单办法就是打包的后的程序也 ...
最新文章
- lasTools laszip.exe 点云las/laz的无损压缩/解压缩工具
- 使用Python中的Turtle库绘制简单的图形
- java mybatis拦截配置_SpringMvc拦截器配置_JavaEE框架(Maven+SpringMvc+Spring+MyBatis)全程实战教程_Java视频-51CTO学院...
- Python入门100题 | 第055题
- 理解UIView的绘制
- 帆软报表(finereport)table块钻取,返回记住table块位置
- 三次多项式曲线php,多项式计算的效率测试,多项式计算效率_PHP教程
- 机器学习真的可以起作用吗?(1)
- 05 ZooKeeper分布式RMI协调实战
- shell基础之综合练习
- 手游开发之lua的class函数详解
- AcWing 1123. 铲雪车 题解(欧拉回路)
- python爬虫和java爬虫哪个好_应用数据下载
- 第十三届蓝桥杯大赛软件赛省赛(Java 大学A组)
- Oracle求同比SQL
- GreenPlum 大数据平台--运维(三)
- Python基础知识-pycharm版-02
- numpy之vstack()、hstack()
- linux查找代码cd文件夹,Linux fing cd 查找文件/文件夹并进入目录命令
- 【StyleGAN代码学习】StyleGAN模型架构