Inno Setup封装exe安装包时的一些设置:关联文件,关联文件图标,设置环境变量,多个程序一起打包等.iss脚本详解;

; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!

//安装包名
#define MyAppName "TestApp"
//版本号
#define MyAppVersion "1.0"
//公司名
#define MyAppPublisher "DefaultCompany"
//公司网址
#define MyAppURL "https://www.DefaultCompany.com/"
//主执行程序
#define MyAppExeName "TestApp.exe"
//关联文件名(这个不重要)
#define MyAppAssocName MyAppName + " File"
//关联文件后缀
#define MyAppAssocExt ".xxx"
//关联文件名去掉空格后加后缀
#define MyAppAssocKey StringChange(MyAppAssocName, " ", "") + MyAppAssocExt


//此节点用于设置安装程序的一些基本信息和选项。
[Setup]
; NOTE: The value of AppId uniquely identifies this application. Do not use the same AppId value in installers for other applications.
//注意:AppId的值唯一标识该应用程序。不要在其他应用程序的安装程序中使用相同的AppId值。
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
//(要生成新的GUID,请在IDE中单击Tools | generate GUID。)
AppId={{FAEB20AD-0348-497C-B7D3-40018A4A6E53}
//设置了安装包的名称。
AppName={#MyAppName}
//设置了安装包的版本号。
AppVersion={#MyAppVersion}
//设置了安装过程中显示的版本号,这里注释了。
;AppVerName={#MyAppName} {#MyAppVersion}
//设置了发布者名称。
AppPublisher={#MyAppPublisher}
//发布者网址。
AppPublisherURL={#MyAppURL}
//支持网址。
AppSupportURL={#MyAppURL}
//更新网址。
AppUpdatesURL={#MyAppURL}
//默认安装目录,{autopf} 通常是 C:\Users\用户名。
DefaultDirName={autopf}\{#MyAppName}
//安装过程中是否允许更改文件关联。
ChangesAssociations=yes
//在安装过程中是否禁用“程序组”页面。这个页面通常用于让用户选择是否创建一个开始菜单中的程序组快捷方式。
DisableProgramGroupPage=yes
//安装许可协议路径。
LicenseFile=D:\Test\TestApp\InstallationProtocol.txt
; Uncomment the following line to run in non administrative install mode (install for current user only.)
//取消注释以在非管理安装模式下运行以下行(仅为当前用户安装)。这里注释了。
;PrivilegesRequired=lowest
//生成的安装程序文件的输出目录。
OutputDir=D:\Test\TestApp\out
//生成的安装程序文件名。
OutputBaseFilename=TestAppSetup
//指定了安装程序的图标文件路径。
SetupIconFile=D:\Test\TestApp\out\Icon.ico
//指定了安装程序的压缩方法。
Compression=lzma
//是否启用实体(solid)压缩,将所有文件压缩为单个压缩块。
SolidCompression=yes
//指定了安装向导的风格。
WizardStyle=modern


//此节点代表安装向导支持的语言(Inno Setup默认是没有中文语言包的,需要在官网下载中文包放在Inno Setup安装路径下\Languages\,注意文本编码格式)。
[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"
Name: "chinesesimplified"; MessagesFile: "compiler:Languages\ChineseSimplified.isl"


//[Tasks]节点用于定义用户可选的任务
[Tasks]
//用于创建桌面图标,默认选中:Flags: exclusive(或者删除Flags字段),默认未选中:Flags: unchecked
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: exclusive


//[Files] 节点用于指定安装程序要复制到目标计算机上的文件及其目标位置。
[Files]
//指定了要安装的文件的源路径。* 通配符表示安装源目录下的所有文件。
//DestDir: "{app}":指定了要安装的文件的目标目录。{app} 是一个特殊的常量,代表应用程序的安装目录。
//Flags: ignoreversion recursesubdirs createallsubdirs:指定了安装文件的标志。
//ignoreversion 表示忽略文件版本检查,recursesubdirs 表示递归地安装源目录下的所有子目录中的文件,createallsubdirs 表示创建所有的子目录。
Source: "D:\Test\TestApp\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
// 注意:不要在任何共享的系统文件上使用“Flags: ignoreversion”


//[Registry] 节点用于在安装过程中向系统注册表添加、修改或删除注册表项和键值。在这个节点中,可以指定要创建、修改或删除的注册表项的详细信息,包括根键、子键路径、值类型、值名称、值数据等
//Root: 
//HKA: HKEY_CLASSES_ROOT
//HKLM:HKEY_LOCAL_MACHINE
//HKCU:HKEY_CURRENT_USER
//HKCR:HKEY_CLASSES_ROOT
//HKU:HKEY_USERS
//HKCC:HKEY_CURRENT_CONFIG
[Registry]
//指定了将文件扩展名关联到应用程序的位置。
Root: HKA; Subkey: "Software\Classes\{#MyAppAssocExt}\OpenWithProgids"; ValueType: string; ValueName: "{#MyAppAssocKey}"; ValueData: ""; Flags: uninsdeletevalue
//定义文件关联的名称。
Root: HKA; Subkey: "Software\Classes\{#MyAppAssocKey}"; ValueType: string; ValueName: ""; ValueData: "{#MyAppAssocName}"; Flags: uninsdeletekey
//设置文件关联的默认图标。
Root: HKA; Subkey: "Software\Classes\{#MyAppAssocKey}\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "D:\Test\TestApp\out\FileIcon.ico,0"
//设置关联文件的应用程序,以便打开关联的文件。
Root: HKA; Subkey: "Software\Classes\{#MyAppAssocKey}\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\TestApp.exe"" ""%1"""

//Root: HKA; Subkey: "Software\Classes\Applications\{#MyAppExeName}\SupportedTypes"; ValueType: string; ValueName: ".myp"; ValueData: ""
//将应用程序安装目录添加到系统环境变量中的 Path 变量。(会覆盖原有的的path系统环境变量)
//Root: HKLM; Subkey: "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"; ValueType: string; ValueName: "Path"; ValueData: "{app}"; Flags: uninsdeletevalue


//[Icons] 节点用于创建安装程序的快捷方式图标。
[Icons]
//创建一个在开始菜单中的快捷方式,名称为应用程序的名称。Filename: 快捷方式所指向的应用程序
Name: "{autoprograms}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
//创建一个在桌面上的快捷方式,名称为应用程序的名称。Filename: 快捷方式所指向的应用程序
Name: "{autodesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon


//[Run] 节点用于在安装过程中运行指定的程序或命令。
[Run]
//安装完成后立即运行指定的应用程序,并在安装过程中显示指定的应用程序名称。
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent

Inno Setup生成的代码详细注释:

多个程序打包的话把文件夹都放进去,生成的快捷键指定好主程序路径就可以了;

; Script generated by the Inno Setup Script Wizard.
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!

//安装包名
#define MyAppName "TestApp"
//版本号
#define MyAppVersion "1.0"
//公司名
#define MyAppPublisher "DefaultCompany"
//公司网址
#define MyAppURL "https://www.DefaultCompany.com/"
//主执行程序
#define MyAppExeName "TestApp.exe"
//关联文件名(这个不重要)
#define MyAppAssocName MyAppName + " File"
//关联文件后缀
#define MyAppAssocExt ".xxx"
//关联文件名去掉空格后加后缀
#define MyAppAssocKey StringChange(MyAppAssocName, " ", "") + MyAppAssocExt


//此节点用于设置安装程序的一些基本信息和选项。
[Setup]
; NOTE: The value of AppId uniquely identifies this application. Do not use the same AppId value in installers for other applications.
//注意:AppId的值唯一标识该应用程序。不要在其他应用程序的安装程序中使用相同的AppId值。
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
//(要生成新的GUID,请在IDE中单击Tools | generate GUID。)
AppId={{FAEB20AD-0348-497C-B7D3-40018A4A6E53}
//设置了安装包的名称。
AppName={#MyAppName}
//设置了安装包的版本号。
AppVersion={#MyAppVersion}
//设置了安装过程中显示的版本号,这里注释了。
;AppVerName={#MyAppName} {#MyAppVersion}
//设置了发布者名称。
AppPublisher={#MyAppPublisher}
//发布者网址。
AppPublisherURL={#MyAppURL}
//支持网址。
AppSupportURL={#MyAppURL}
//更新网址。
AppUpdatesURL={#MyAppURL}
//默认安装目录,{autopf} 通常是 C:\Users\用户名。
DefaultDirName={autopf}\{#MyAppName}
//安装过程中是否允许更改文件关联。
ChangesAssociations=yes
//在安装过程中是否禁用“程序组”页面。这个页面通常用于让用户选择是否创建一个开始菜单中的程序组快捷方式。
DisableProgramGroupPage=yes
//安装许可协议路径。
LicenseFile=D:\Test\TestApp\InstallationProtocol.txt
; Uncomment the following line to run in non administrative install mode (install for current user only.)
//取消注释以在非管理安装模式下运行以下行(仅为当前用户安装)。这里注释了。
;PrivilegesRequired=lowest
//生成的安装程序文件的输出目录。
OutputDir=D:\Test\TestApp\out
//生成的安装程序文件名。
OutputBaseFilename=TestAppSetup
//指定了安装程序的图标文件路径。
SetupIconFile=D:\Test\TestApp\out\Icon.ico
//指定了安装程序的压缩方法。
Compression=lzma
//是否启用实体(solid)压缩,将所有文件压缩为单个压缩块。
SolidCompression=yes
//指定了安装向导的风格。
WizardStyle=modern


//此节点代表安装向导支持的语言(Inno Setup默认是没有中文语言包的,需要在官网下载中文包放在Inno Setup安装路径下\Languages\,注意文本编码格式)。
[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl"
Name: "chinesesimplified"; MessagesFile: "compiler:Languages\ChineseSimplified.isl"


//[Tasks]节点用于定义用户可选的任务
[Tasks]
//用于创建桌面图标,默认选中:Flags: exclusive(或者删除Flags字段),默认未选中:Flags: unchecked
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: exclusive


//[Files] 节点用于指定安装程序要复制到目标计算机上的文件及其目标位置。
[Files]
//指定了要安装的文件的源路径。* 通配符表示安装源目录下的所有文件。
//DestDir: "{app}":指定了要安装的文件的目标目录。{app} 是一个特殊的常量,代表应用程序的安装目录。
//Flags: ignoreversion recursesubdirs createallsubdirs:指定了安装文件的标志。
//ignoreversion 表示忽略文件版本检查,recursesubdirs 表示递归地安装源目录下的所有子目录中的文件,createallsubdirs 表示创建所有的子目录。
Source: "D:\Test\TestApp\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
// 注意:不要在任何共享的系统文件上使用“Flags: ignoreversion”


//[Registry] 节点用于在安装过程中向系统注册表添加、修改或删除注册表项和键值。在这个节点中,可以指定要创建、修改或删除的注册表项的详细信息,包括根键、子键路径、值类型、值名称、值数据等
//Root: 
//HKA: HKEY_CLASSES_ROOT
//HKLM:HKEY_LOCAL_MACHINE
//HKCU:HKEY_CURRENT_USER
//HKCR:HKEY_CLASSES_ROOT
//HKU:HKEY_USERS
//HKCC:HKEY_CURRENT_CONFIG
[Registry]
//指定了将文件扩展名关联到应用程序的位置。
Root: HKA; Subkey: "Software\Classes\{#MyAppAssocExt}\OpenWithProgids"; ValueType: string; ValueName: "{#MyAppAssocKey}"; ValueData: ""; Flags: uninsdeletevalue
//定义文件关联的名称。
Root: HKA; Subkey: "Software\Classes\{#MyAppAssocKey}"; ValueType: string; ValueName: ""; ValueData: "{#MyAppAssocName}"; Flags: uninsdeletekey
//设置文件关联的默认图标。
Root: HKA; Subkey: "Software\Classes\{#MyAppAssocKey}\DefaultIcon"; ValueType: string; ValueName: ""; ValueData: "D:\Test\TestApp\out\FileIcon.ico,0"
//设置关联文件的应用程序,以便打开关联的文件。
Root: HKA; Subkey: "Software\Classes\{#MyAppAssocKey}\shell\open\command"; ValueType: string; ValueName: ""; ValueData: """{app}\TestApp.exe"" ""%1"""

//Root: HKA; Subkey: "Software\Classes\Applications\{#MyAppExeName}\SupportedTypes"; ValueType: string; ValueName: ".myp"; ValueData: ""
//将应用程序安装目录添加到系统环境变量中的 Path 变量。(会覆盖原有的的path系统环境变量)
//Root: HKLM; Subkey: "SYSTEM\CurrentControlSet\Control\Session Manager\Environment"; ValueType: string; ValueName: "Path"; ValueData: "{app}"; Flags: uninsdeletevalue


//[Icons] 节点用于创建安装程序的快捷方式图标。
[Icons]
//创建一个在开始菜单中的快捷方式,名称为应用程序的名称。Filename: 快捷方式所指向的应用程序
Name: "{autoprograms}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
//创建一个在桌面上的快捷方式,名称为应用程序的名称。Filename: 快捷方式所指向的应用程序
Name: "{autodesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon


//[Run] 节点用于在安装过程中运行指定的程序或命令。
[Run]
//安装完成后立即运行指定的应用程序,并在安装过程中显示指定的应用程序名称。
Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent

  • 6
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值