Windows程序安装包打包软件

相比于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 没启用则返回一个空字符。

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×