inno打包教程

打包成 exe 安装程序的工具有:innoSetup、HofoSetup、NSIS 等。

  innoSetup:用过

  NSIS:没用过

  HofoSetup:简单方便,但是收费


 Inno Setup 编程技术:https://blog.csdn.net/u011287646/article/details/81629252

一、基本概念:https://blog.csdn.net/wulei0605/article/details/7244708

  1、段:每个段控制一个不同方面的安装程序部分。每个段用包含在括号 [] 中的段名开始,每个段里面是一些相关的条目。

  2、常量:脚本中的项目大部分可以嵌入常量。这些预定义的字符被包含在括弧 { } 中。

    a、{app} :目录常量

    b、{win} :系统的 Windows 目录

    c、{sys} :系统的 Windows System 目录

    d、{src} :安装程序文件所在目录

    e、{sd} :Windows 系统所在的驱动器。一般来说是“C:”。

    等等。。。

  3、

二、inno Setup 基础配置:【inno Setup 5.xx 和 6.xx 有的配置有点不一样的】 https://www.cnblogs.com/barrysgy/archive/2011/11/15/2249783.html  或  https://www.cnblogs.com/yplong/p/3721334.html

1、宏定义 常量:

#define MyAppName "我的app"

2、配置:

;这儿以行来分 不区分大小写
[Setup]
;AppName的值会出现在 安装开始界面 "欢迎使用AppName安装向导"
AppName=InnoExample
;AppVerName的值会出现在 安装开始界面 "现在将安装AppVerName到你的电脑中."  如果没这个字段就会用AppName值代替
;AppVerName 与 AppVersion 最少要有一个
AppVerName=My Inno Example Version 1.0
;AppVersion设置应用程序版本号 因为应用程序里面可能有好多个程序 整体有个版本, 在卸载程序时有版本号就是这个版本了 可不填写
AppVersion=1.0.0.0
;版权 要设置windowvisible才能在右下角看到
;AppCopyright=版权所有(C) 2011, sgy.com
;windowvisible会在安装程序背后设置一个大的窗口 而不是对话框形式
;WindowVisible=true
;下面三个都是在添加删除程序时才能看到的信息
;AppPublisher=heromyth
;AppPublisherURL=http://www.sgy.com
;AppContact=barrysgy@yahoo.com.cn
;defaultdirname是默认安装的文件 {pf}表示为c:programe files
DefaultDirName={pf}MyCompanyInnoExample
;DefaultGroupName是默认组的名字(开始菜单里面的名字)
;后面用{group}引用 设置开始菜单里面文件夹名文件名
DefaultGroupName=MyCompanyInnoExample
;outputbasefilename是安装文件的文件名 扩展名自动为.exe
OutputBaseFilename=InnoExample_setup
;compression是压缩算法 lzma2是lzma的改进版, 是7-zip的算法 如果不指定算法 默认用lzma2/max
Compression=lzma2
;安装的图标
SetupIconFile={app}pic.ico
;安装文件鼠标放上去时显示的版本号(应该是指安装版本)
VersionInfoVersion=1.0.0.0
;公司名
VersionInfoCompany=mycompany
;版本信息描述
VersionInfoDescription=example Setup
;右击安装文件->属性->版本->产品版本 所显示的版本号(指里面软件版本吧)
VersionInfoTextVersion=1, 0, 0, 0
;安装时左侧的图 只能用bmp格式的位图 jpg矢量图不行  164x314   不是这么大小的, 会缩放拉伸
WizardImageFile={app}dog.bmp

;下面这个componets是选择安装(如果不用选择安装,可以不要)
;先这边声明, 后面在[Files]里面, 加个componets:名字 就能设置他在这个组件里面了
[components]
;name随便取了, 到下面关键字componets后面再引用
;types可以填写full compact custom
;flags是标记 fixed是安装时必选
Name: main; Description:"主程序(必选)"; Types:full compact custom; Flags: fixed
Name: help; Description:"帮助文件";  Types: full
Name: "helpenglish"; Description: "English"; Types: full
Name: "helpchinese"; Description: "简体中文"; Types: full

;用户定制任务
[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
Name: "quicklaunchicon"; Description: "{cm:CreateQuickLaunchIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
;选择了组件才会出现的定制任务
;Name: "Tasks_3" ; Description:"用户自定义任务";Components: helpenglish; Flags: unchecked

[files]
;source表示源 destdir表示安装目的,
;flages是个多选可填的ignoreversion就是不查看目的路径的版本号, 全部替换.
;flages里面可以控制如果版本号比当前高是否替换, 或卸载时 有些mfc共享dll是否删除等等
Source: "{app}cmd.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "{app}配置.ini"; DestDir: "{app}"; Flags: ignoreversion
;Components是设置安装时属于哪个组件 如果前面没选就不会安装了
Source: "{app}英文帮助.txt"; DestDir: "{app}"; Flags: ignoreversion; components:helpenglish
Source: "{app}中文帮助.txt"; DestDir: "{app}"; Flags: ignoreversion; components:helpchinese
;isreadme可以用来安装完再设置
;Source: "{app}
eadme.txt"; DestDir: "{app}"; Flags: ignoreversion isreadme;
Source: "{app}
eadme.txt"; DestDir: "{app}"; Flags: ignoreversion
;封装整目录及子目录里面的文件
;Source: "{app}*.*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs;

;run在安装结束前运行
[Run]
;postinstall 是显示一个checkbox, shellexec是调用shell执行, 如果不是可执行文件可以调用
;skipifsilent 告诉程序如果安装程序在后台运行 则跳过这个条目
;run时要等上一个处理结束才处理下一个, nowait才继续下一个
Filename: "{app}
eadme.txt"; Description: "查看自述文件"; Flags: postinstall shellexec skipifsilent
Filename: "{app}cmd.exe"; Description: "运行应用程序"; Flags: postinstall nowait skipifsilent unchecked
;Filename: "http://www.cnblogs.com"; Description: "访问cnblogs"; Flags: postinstall shellexec skipifsilent

;在安装目录下面新建一个文件夹可以用来放数据什么的
;[dirs]
;Name: "{app}data"

;icon是设置快捷方式的 包括桌面, 开始菜单, 快速启动栏
[Icons]
;name是快捷方式名字, iconfilename可以是ico或exe或dll, Commnet是鼠标放上去时的提示
Name: "{group}打开cmd"; Filename: "{app}cmd.exe"; Comment:"我的快捷方式"
Name: "{group}打配置"; Filename: "{app}配置.ini";
Name: "{group}{cm:UninstallProgram, InnoExample}"; Filename: "{uninstallexe}";
;WorkingDir是目标起始位置
Name: "{userdesktop}打开cmd"; Filename: "{app}cmd.exe"; WorkingDir: "{app}"; Tasks: quicklaunchicon
;这是调用custommessages的
Name: "{group}{cm:NameAndVersion, 我的, 是吗?}"; Filename: "{app}cmd.exe";
;只有选择了任务才会执行
Name: "{userappdata}MicrosoftInternet ExplorerQuick LaunchMyCmd"; Filename: "{app}cmd.exe"; Tasks: quicklaunchicon

;语言选择
;[languages]
;Name: "cn"; MessagesFile: "compiler:Default.isl"
;Name: "en"; MessagesFile: "compiler:LanguagesEnglish.isl"
 
;用户自定消息(字符串) 用时可以用{cm:名字, 第一个参数, 第二数...}
;%1与后面空格到调用时也会显示为空格的
[CustomMessages]
;如果上面定义了语言中文为cn 英文为en 自己定义消息时可以加个言前缀
;cn.NameAndVersion=%1 版本 %2
;en.NameAndVersion=%1 copyright %2
NameAndVersion=%1 版本 %2
AdditionalIcons=附加快捷方式:
CreateDesktopIcon=创建桌面快捷方式(&D)
CreateQuickLaunchIcon=创建快速运行栏快捷方式(&Q)
ProgramOnTheWeb=%1 网站
UninstallProgram=卸载 %1
LaunchProgram=运行 %1
AssocFileExtension=将 %2 文件扩展名与 %1 建立关联(&A)
AssocingFileExtension=正在将 %2 文件扩展名与 %1 建立关联...
 
下载inno setup例子
inno setup汉化 5.31
Inno Setup Unpacker 网上找, 可以解压inno setup安装包

3、补充配置:


inno 默认配置 外 添加 功能的配置:

1、安装时写入注册表:https://www.cnblogs.com/wainiwann/p/10724696.html

[registry]
;本段处理程序在注册表中的键值
Root:HKCR64;Subkey:party;ValueType: string;ValueData:"party";Flags: uninsdeletevalue
Root:HKCR64;Subkey:party;ValueType: string; ValueName:URL Protocol;ValueData:{app}electron-vue.exe;Flags: uninsdeletevalue
Root:HKCR64;Subkey:partyshellopencommand;ValueType: string;ValueData:"""{app}electron-vue.exe"" ""%1""";Flags: uninsdeletevalue

2、先卸载 再 安装:https://www.cnblogs.com/liujx2019/p/10516255.html

3、

 
原文地址:https://www.cnblogs.com/wfblog/p/14142955.html