相比于InstallShield 更简单易用
innosetup安装包打包
可以覆盖上次安装的软件,而且能做到一键生成,挺方便的
静默安装 XXX.exe /verysilent /norestart
; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
#define MyAppNameEn "pro"
#define MyAppName "XXX"
#define MyAppVersion "0.9.7.0"
#define MyAppPublisher "XXX有限公司"
#define MyAppURL "http://www.XXX.com"
#define MyAppExeName "XXX.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={{CB5E8A97-EF65-4D47-BF04-1CA9314E1633}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={pf}\{#MyAppNameEn}
DisableProgramGroupPage=yes
OutputDir=C:\Package
OutputBaseFilename={#MyAppNameEn}_{#MyAppVersion}
SetupIconFile=C:\Package\log.ico
Compression=lzma
SolidCompression=yes
VersionInfoVersion={#MyAppVersion}
VersionInfoTextVersion={#MyAppVersion}
[InstallDelete]
Type: filesandordirs; Name: "{app}"
[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"
[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
[Files]
Source: "C:\Package\Content\XXX.exe"; DestDir: "{app}"; Flags: ignoreversion
Source: "C:\Package\Content\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
[Icons]
Name: "{commonprograms}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon
[Run]
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent
Inno Setup 常量与Windows环境变量的对应
{app}:用户在安装向导中的选择目标位置页中选定的应用程序目录。
最高版本:OnlyBelowVersion: 0,5.3
最低版本:; MinVersion: 0.0,6.0;
32位与64位选择安装包:ArchitecturesInstallIn64BitMode=x64
32位:Check: not Is64BitInstallMode
64位:Check: Is64BitInstallMode
{win}=C:\WINDOWS\
{sys}=C:\WINDOWS\System32
{syswow64}=“C:\WINDOWS\SysWOW64”。
{src}安装程序文件所在目录。
{sd}=Windows 系统所在的驱动器。一般来说是“C:”
{pf}= C:\Program Files
{pf32}=(32bit)C:\Program Files=(64bit)C:\Program Files (x86)
{pf64}= C:\Program Files
{cf}= C:\Program Files\Common Files
{cf32}=(32bit)C:\Program Files\Common Files =(64bit)C:\Program Files (x86)\Common Files”。
{cf64}=(64bit)C:\Program Files\Common Files
{tmp}=C:\WINDOWS\TEMP\IS-xxxxx.tmp
{fonts}=C:\WINDOWS\FONTS
{dao}={cf}\Microsoft Shared\DAO。
{group}=开始菜单文件夹路径。
{localappdata} = %LocalAPPData%
=(WinXP)C:\Documents and Settings\Administrator\Local Settings\Application Data
=(Windows7)C:\Users\Administrator\AppData\Local
{sendto} = %USERPROFILE%\SendTo
{userappdata} & {commonappdata}=%APPDATA%
= (WinXP)C:Documents and Settings\用户目录\Application Data
= (Windows7)C:\Users\Administrator\AppData\Roaming
{userdesktop} & {commondesktop} * = %USERPROFILE%\桌面 桌面文件夹路径。
{userdocs} & {commondocs} 我的文档 (My Documents) 文件夹路径 。
{userfavorites} & {commonfavorites} * = %Favorites%
{userprograms} & {commonprograms} * = %StartMenu% 开始菜单中程序文件夹路径。
{userstartmenu} & {commonstartmenu} * 开始菜单顶层路径。
{userstartup} & {commonstartup} * 开始菜单启动文件夹路径。
{usertemplates} & {commontemplates} * 模板文件夹路径。仅在 Windows 2000 和更高版本支持 {commontemplates},如果使用的是先前的 Windows 版本,它将被翻译为等同于 {usertemplates} 目录。
其它常量
{\}
反斜杠字符。查阅本页顶部的注释获取使用 {\} 和只使用一个 \ 字符之间的差异。
{% NAME | DefaultValue }
嵌入一个环境变量值。
NAME 用于指定要使用的环境变量的名字。
DefaultValue 确定如果指定的变量在用户系统中不存在时置入的字符串。
如果你想在常量内部包含一个逗号、竖条 (“|”),或括弧后半部 (“}”),你必须通过“%-encoding.”先用一个“%”字符然后跟随它的两上数字的十六进制代码替换,从而避开它。逗号是“%2c”,竖条是“%7c”括弧后半部是“%7d”。如果你想实际使用“%”,使用“%25”。
NAME 和 DefaultValue 可以包含常量。注意,你不需要将常量中的括弧替换成上面所说的字符;上面所说的括弧后半部只在使用于其它地方时需要替换。
示例:
{%COMSPEC}
{%PROMPT|$P$G}
{cmd}
系统标准命令解释器的完整路径名。在 Windows NT/2000/XP/2003,是 Windows\System32\cmd.exe。在 Windows 95/98/Me,是 Windows\COMMAND.COM。注意当展开这个常量时 COMSPEC 环境变量不使用。
{computername}
正在运行安装程序或卸载程序的电脑名 (等同于由Windows GetComputerName 函数返回的值)。
{drive: Path }
从指定的路径中提取并返回驱动器卷标和冒号 (例如“C:”)在 UNC 路径的场合中,它返回服务器和共享名 (例如“\\SERVER\SHARE”)。
Path 指定路径。
如果你想在常量内部包含一个逗号、竖条 (“|”),或括弧后半部 (“}”),你必须通过“%-encoding.”先用一个“%”字符然后跟随它的两上数字的十六进制代码替换,从而避开它。逗号是“%2c”,竖条是“%7c”括弧后半部是“%7d”。如果你想实际使用“%”,使用“%25”。
Path 可以包含常量。注意,你不需要将常量中的括弧替换成上面所说的字符;上面所说的括弧后半部只在使用于其它地方时需要替换。
示例:
{drive:{src}}
{drive:c:\path\file}
{drive:\\server\share\path\file}
{groupname}
用户在安装程序向导页的选择开始菜单文件夹中选定的文件夹名。它不同于 {group},只有名字,不包含路径。
{hwnd}
(特殊用途) 转换为安装程序的背景窗口句柄。
{wizardhwnd}
(特殊用途) 转换为安装程序的向导窗口句柄。如果向导窗口句柄在翻译完成时不能用,这个句柄设置为“0”。
{ini: Filename , Section , Key | DefaultValue }
从 .INI 文件插入一个值。
Filename 指定要读取的 .INI 文件的名字。
Section 指定读取的段名。
Key 指定读取的键名。
DefaultValue 确定如果指定的键不存在时要插入的字符。
如果你想在常量内部包含一个逗号、竖条 (“|”),或括弧后半部 (“}”),你必须通过“%-encoding.”先用一个“%”字符然后跟随它的两上数字的十六进制代码替换,从而避开它。逗号是“%2c”,竖条是“%7c”括弧后半部是“%7d”。如果你想实际使用“%”,使用“%25”。
Filename, Section, 和 Key 可以包含常量。注意,你不需要将常量中的括弧替换成上面所说的字符;上面所说的括弧后半部只在使用于其它地方时需要替换。
示例:
{ini:{win}\MyProg.ini,Settings,Path|{pf}\My Program}
{language}
选定语言的内部名字。查阅 [Languages] 段帮助文档获取更多信息。
{cm: MessageName }
{cm: MessageName , Arguments }
根据活动语言嵌入一个自定义消息值。
MessageName 用于指定要读取的自定义消息名。查阅 [CustomMessages] 段帮助文档获取更多信息。
Arguments 可随意在消息值中指定逗号分隔的声明列
表。
如果你想在常量内部包含一个逗号,垂直条 (“|”),或括号 (“}”),你必须使用“%-encoding.”避开它,用“%”字符,后面跟随它的两位数十六进制代码替换。逗号是“%2c”,垂直条是“%7c”,括号是“%7d”,如果你想包含一个实际的“%”字符,用“%25”。
每个 Arguments 中的声明可以包含常量。注意,你不需要避开上面描述的常量中的括号,只有在别处使用这种括号时需要避开。
示例:
{cm:LaunchProgram,Inno Setup}
如果活动语言是简体中文,上面的示例被翻译为“运行 Inno Setup”。
{reg:HK xx \ SubkeyName , ValueName | DefaultValue }
插入一个注册表值。
HKxx 指定注册表根键;查阅 [Registry] 段帮助文档获取可用根键列表。
SubkeyName 指定要读取的子键名。
ValueName 指定要读取的值名;如果你想读取键的“默认”值,将 ValueName 留空。
DefaultValue 确定在指定的注册表值不存在,或不是一个字符串类型的值 (REG_SZ 或 REG_EXPAND_SZ) 时要插入的字符。
如果你想在常量内部包含一个逗号、竖条 (“|”),或括弧后半部 (“}”),你必须通过“%-encoding.”先用一个“%”字符然后跟随它的两上数字的十六进制代码替换,从而避开它。逗号是“%2c”,竖条是“%7c”括弧后半部是“%7d”。如果你想实际使用“%”,使用“%25”。
SubkeyName, ValueName, 和 DefaultValue 可以包含常量。注意,你不需要将常量中的括弧替换成上面所说的字符;上面所说的括弧后半部只在使用于其它地方时需要替换。
示例:
{reg:HKLM\Software\My Program,Path|{pf}\My Program}
{param: ParamName | DefaultValue }
插入一个命令行参数值。
ParamName 指定要读取的命令行参数名。
DefaultValue 确定如果指定的命令行参数不存在,或它的值不能确定时要插入的字符。
如果你想在常量内部包含一个逗号、竖条 (“|”),或括弧后半部 (“}”),你必须通过“%-encoding.”先用一个“%”字符然后跟随它的两上数字的十六进制代码替换,从而避开它。逗号是“%2c”,竖条是“%7c”括弧后半部是“%7d”。如果你想实际使用“%”,使用“%25”。
ParamName 和 DefaultValue 可以包含常量。注意,你不需要将常量中的括弧替换成上面所说的字符;上面所说的括弧后半部只在使用于其它地方时需要替换。
示例:
{param:Path|{pf}\My Program}
如果指定命令行 /Path="c:\My Program",上面的例子翻译为 c:\My Program。
{srcexe}
安装程序文件的完整路径名,例如“C:\SETUP.EXE”。
{uninstallexe}
由安装程序提取的卸载程序的完整路径名,例如“C:\Program Files\My Program\unins000.exe”。这个常量一般用于在 [Icons] 段条目创建一个卸载图标。它只在 Uninstallable 设为 yes
(默认设置) 时有效。
{sysuserinfoname}
{sysuserinfoorg}
Windows 已许可的名字和组织,这个信息从注册表中读取。
{userinfoname}
{userinfoorg}
{userinfoserial}
用户在用户信息向导页 (可以通过 UserInfoPage 指令来启用) 中分别输入的名字,组织和序列号。一般来说,这些常量用于在 [Registry] 或 [INI] 条目中保存它们以后要使用的值。
{username}
正在运行安装程序或卸载程序的用户的名字 (也可以用 GetUserName 函数返回)。
{log}
日志文件的名称,如果 logging 没启用则返回一个空字符。