【软件工具】 Inno Setup 安装程序制作工具

Innosetup打包工具,从工具安装到脚本编写到打包发布 Innosetup打包工具,从工具安装到脚本编写到打包发布,里边有Innosetup设置管理员权限,Innosetup卸载旧程序,Innosetup检查是否64位系统等等说明 阅读详情
AI摘要

Inno Setup是一款免费的Windows程序安装程序制作工具,支持自2006年以来的所有Windows版本。它可通过脚本创建安装程序,脚本控制安装各方面,还支持多种常量和参数设置,能实现文件安装、创建快捷方式等功能,且可免费用于商业用途。

基本信息

官方网站:https://jrsoftware.org/isinfo.php
软件授权:免费软件
下载地址:https://jrsoftware.org/isdl.php
开源状态:非开源
安装途径:官方下载的安装包; Scoop
推荐星级:⭐⭐⭐
功能简述:用于制作Windows程序的安装包的工具。

功能简述

Inno Setup是一个免费的安装程序制作工具,适用于Windows程序。开发者可以使用Inno Setup来打包他们的应用程序,并为其创建一个标准的Windows安装程序。这个安装程序可以包含文件、注册表项、快捷方式、组件、以及卸载程序等。

  • 官方介绍

Inno Setup is a free installer for Windows programs by Jordan Russell and Martijn Laan. First introduced in 1997, Inno Setup today rivals and even surpasses many commercial installers in feature set and stability.

软件帮助

为了方便自学,翻译了 Inno Setup 的帮助文件,也分享在这里


我对翻译做了整理,请看整理后的文章:

Inno Setup 帮助翻译 - 1. Inno Setup 是什么?
Inno Setup 帮助翻译 - 2. 创建安装程序
Inno Setup 帮助翻译 - 3. 脚本格式概述
Inno Setup 帮助翻译 - 4. 脚本中的参数
Inno Setup 帮助翻译 - 5. 常量
Inno Setup 帮助翻译 - 6. 通用参数

请忽略下方内容:


Inno Setup 6.2.2 使用说明

版权信息

Inno Setup 6.2.2
版权所有 © 1997-2023 Jordan Russell。保留所有权利。
部分版权所有 © 2000-2023 Martijn Laan。保留所有权利。
Inno Setup 主页 外部链接

简介

Inno Setup 是 Jordan Russell 和 Martijn Laan 开发的一款免费的 Windows 程序安装程序。该程序自 1997 年首次发布以来,在功能集和稳定性方面已经可以与许多商业安装程序相媲美,甚至更胜一筹。

主要功能
  • 支持自 2006 年以来的所有 Windows 版本,包括:Windows 11、Windows 10、Windows 10 on ARM、Windows Server 2019、Windows Server 2016、Windows 8.1、Windows 8、Windows Server 2012、Windows 7、Windows Server 2008 R2、Windows Server 2008 以及 Windows Vista。(无需服务包。)
  • 全面支持在 64 位 Windows 版本上安装 64 位应用程序。支持 x64、ARM64 和 Itanium 架构。
  • 全面支持管理员和非管理员安装。
  • 支持创建单个 EXE 文件以安装您的程序,便于在线分发。也支持跨磁盘安装。
  • 可调整大小的标准 Windows 向导界面。
  • 可自定义的安装类型,例如:完整、最小和自定义。
  • 完全的卸载功能。
  • 文件安装:
    • 集成支持 “deflate”、bzip2 和 7-Zip LZMA/LZMA2 文件压缩。安装程序具有比较文件版本信息、替换正在使用的文件、使用共享文件计数、注册 DLL/OCX 和类型库以及安装字体的能力。
  • 在任何位置创建快捷方式,包括在开始菜单和桌面上。
  • 创建注册表和 .INI 条目。
  • 在安装之前、期间或之后运行其他程序。
  • 支持多语言安装,包括从右到左的语言支持。
  • 支持密码保护和加密安装。
  • 支持数字签名的安装和卸载,包括双重签名(SHA1 和 SHA256)。
  • 静默安装和静默卸载。
  • Unicode 安装。
  • 集成的预处理器选项,用于高级编译时定制。
  • 集成的 Pascal 脚本引擎选项,用于高级运行时安装和卸载定制。
  • 完整的源代码可在 GitHub 上获取 [外部链接]。
  • 占用空间小:包含所有功能在内,仅约 1.5 MB 的额外开销。
  • 所有功能都有完整的文档说明。
  • 被 Microsoft Visual Studio Code [外部链接] 和 Embarcardero Delphi [外部链接] 等软件所使用。
它真的是免费的吗?甚至可以用于商业用途?

是的,它完全可以免费使用,即使在部署商业应用程序时也是如此。

(注意:“完全免费”不应与“完全自由”混淆。Inno Setup 是受版权保护的软件,而非公有领域软件。在分发和使用方面有一些限制;详见 LICENSE.TXT 文件。)

创建安装程序

安装程序是通过脚本创建的,这些脚本是ASCII或Unicode(UTF-8编码且带有BOM)的文本文件,其格式与.INI文件有些相似。(不,它并没有你想的那么复杂!)

脚本具有“.iss”(意为Inno Setup脚本)扩展名。脚本控制着安装的各个方面。它指定了要安装哪些文件以及安装位置,要创建哪些快捷方式以及它们的命名等等。

脚本文件通常在“Inno Setup Compiler”编译器IDE程序内部进行编辑。完成脚本编写后,下一步也是最后一步是在编译器IDE中选择“编译”。此操作将根据您的脚本创建一个完整的、可运行的安装程序。默认情况下,该程序将在包含脚本的目录下的名为“Output”的目录中创建。

为了让您了解这一切是如何工作的,请启动编译器IDE,单击“文件”|“打开”,并选择位于Inno Setup目录下的Examples子目录中的一个脚本文件。(使用示例脚本作为您自己脚本的模板可能会有所帮助。)

脚本格式概述

Inno Setup 脚本被安排成多个部分。每个部分控制着安装程序的不同方面。一个部分是通过指定包含在方括号[]中的部分名称来开始的。在每个部分内部,可以有任意数量的条目。

主要有两种不同类型的部分:一种是如 [Setup] 这样的,其条目包含指令名称和值(以 Directive=Value 的形式),另一种是如 [Files] 这样的,其条目被分为参数。

以下是一个示例:

[Setup]
AppName=My Program

[Files]
Source: "MYPROG.EXE"; DestDir: "{app}"

请注意,指定多个同名的部分是合法的。

你可以在脚本中添加“注释”(编译器会忽略这些注释),方法是在行的开头放置一个分号。例如:

; 这是一个注释。我可以在这里给自己写一些提醒...

脚本支持类似C语言的#include指令,它可以将一个单独文件的内容拉取到脚本中的#include指令位置。语法是:

#include "filename.txt"

如果文件名不是完全限定的,编译器将在包含#include指令的文件的同一目录中查找它。文件名可以前缀为“compiler:”,在这种情况下,它会在编译器目录中查找文件。

脚本支持#preproc指令,该指令指定是否使用仅支持上述#include指令的内置预处理器,还是使用支持更多指令的Inno Setup Preprocessor (ISPP)。语法是:

#preproc builtin
#preproc ispp

默认情况下,如果可用,脚本将使用ISPP,而.isl文件则使用内置预处理器。

如果使用的是Unicode文件,它必须是带有BOM的UTF-8编码。

脚本中的参数

脚本中的所有部分,除了[Setup]、[Messages]、[CustomMessages]、[LangOptions]和[Code]之外,都包含分隔为参数的行。以下是一个[Files]部分的示例:

[Files]
Source: "MYPROG.EXE"; DestDir: "{app}"
Source: "MYPROG.CHM"; DestDir: "{app}"
Source: "README.TXT"; DestDir: "{app}"; Flags: isreadme

每个参数都由名称、冒号和值组成。除非另有说明,否则参数是可选的,如果未指定,它们将采用默认值。一行上的多个参数用分号分隔,可以按任意顺序列出。

当参数的值包含用户定义的字符串(如文件名)时,传统上将其用双引号(")括起来。虽然使用引号不是必需的,但这样做可以在值中嵌入前导和尾随空格,以及分号和双引号字符。

要在引号内的值中嵌入双引号字符,请使用两个连续的双引号字符。例如:

"This "" contains "" embedded "" quotes"

编译器将其视为:

This " contains " embedded " quotes

如果您希望参数的值是一个单独的双引号字符,请使用四个双引号字符:“”“”。外部的两个双引号用于将整个字符串括在引号内;内部的两个双引号用于嵌入一个单独的双引号字符。

常量

脚本条目中的大多数都可以嵌入常量。这些预定义的字符串被包含在大括号 { } 中。根据用户的选择和系统配置,安装或卸载程序会将常量翻译为其字面值。例如,如下面所述,{win} 在大多数系统上将翻译为 “C:\WINDOWS”。

字符 “{” 被视为常量的开始。如果希望在支持常量的位置使用该实际字符,则必须使用两个连续的 “{” 字符。(不需要双写 “}” 字符。)

当常量后面紧跟着反斜杠时,如果常量的值已经以反斜杠结尾,安装或卸载程序将自动移除该反斜杠。因此,如果某个特定常量的值是 “C:”,{constantname}\file 将被翻译为 “C:\file”,而不是 “C:\file”。如果要防止这种情况发生,请将反斜杠用 { } 字符括起来,例如 {app}{}。

以下是支持的常量列表。

目录常量

{app}

应用程序目录,用户在向导的“选择目标位置”页面上选择。
例如:如果在条目上使用 {app}\MYPROG.EXE,并且用户选择 “C:\MYPROG” 作为应用程序目录,安装程序将其翻译为 “C:\MYPROG\MYPROG.EXE”。

{win}
系统的 Windows 目录。
例如:如果在条目上使用 {win}\MYPROG.INI,并且系统的 Windows 目录是 “C:\WINDOWS”,安装或卸载程序将其翻译为 “C:\WINDOWS\MYPROG.INI”。

{sys}
系统的 System32 目录。
例如:如果在条目上使用 {sys}\CTL3D32.DLL,并且系统的 Windows System 目录是 “C:\WINDOWS\SYSTEM”,安装或卸载程序将其翻译为 “C:\WINDOWS\SYSTEM\CTL3D32.DLL”。

在 64 位 Windows 上,默认情况下,此常量返回的 System32 路径映射到包含 32 位系统文件的目录,就像在 32 位 Windows 上一样。(这可以通过启用 64 位安装模式来覆盖。)

{sysnative}
在 64 位 Windows 上,包含 64 位系统文件的目录。在 32 位 Windows 上,包含 32 位系统文件的目录。

{syswow64}
在 64 位 Windows 上,系统的 SysWOW64 目录,通常是 “C:\WINDOWS\SysWOW64”。这是实际包含 32 位系统文件的目录。在 32 位 Windows 上,32 位系统文件不驻留在单独的 SysWOW64 目录中,因此如果在该位置使用此常量,它将解析为与 {sys} 相同的目录。

除非有特定需求需要获取实际包含 32 位系统文件的目录的名称,否则不要使用此常量。在 {sys} 就足够的地方随意使用 {syswow64} 可能会引起问题。(有关示例,请参阅 [Files] 部分的 sharedfile 标志的文档。)

{src}
Setup 文件所在的目录。
例如:如果在条目上使用 {src}\MYPROG.EXE,并且用户从 “S:” 安装,安装程序将其翻译为 “S:\MYPROG.EXE”。

{sd}
系统驱动器。安装 Windows 的驱动器,通常是 “C:”。此目录常量等同于 SystemDrive 环境变量。

{commonpf}
程序文件。系统 Program Files 目录的路径。除非安装以 64 位安装模式运行(在这种情况下它等同于 {commonpf64}),否则 {commonpf} 等同于 {commonpf32}。

{commonpf32}
32 位程序文件。系统 32 位 Program Files 目录的路径,在 32 位 Windows 上通常是 “C:\Program Files”,在 64 位 Windows 上是 “C:\Program Files (x86)”。

{commonpf64}
仅 64 位 Windows:64 位程序文件。系统 64 位 Program Files 目录的路径,通常是 “C:\Program Files”。如果尝试在 32 位 Windows 上扩展此常量,将引发异常。

{commoncf}
公共文件。系统 Common Files 目录的路径。除非安装以 64 位安装模式运行(在这种情况下它等同于 {commoncf64}),否则 {commoncf} 等同于 {commoncf32}。

{commoncf32}
32 位公共文件。系统 32 位 Common Files 目录的路径,在 32 位 Windows 上通常是 “C:\Program Files\Common Files”,在 64 位 Windows 上是 “C:\Program Files (x86)\Common Files”。

{commoncf64}
仅 64 位 Windows:64 位公共文件。系统 64 位 Common Files 目录的路径,通常是 “C:\Program Files\Common Files”。如果尝试在 32 位 Windows 上扩展此常量,将引发异常。

{tmp}
安装或卸载程序使用的临时目录。这不是用户 TEMP 环境变量的值。它是用户在安装或卸载程序启动时创建的临时目录的子目录(名称类似于 “C:\WINDOWS\TEMP\IS-xxxxx.tmp”)。当安装或卸载程序退出时,此目录中的所有文件和子目录都将被删除。在安装过程中,这主要用于提取要在 [Run] 部分中执行但安装后不需要的文件。

Shell 文件夹常量

Inno Setup 支持另一组目录常量,称为 shell 文件夹常量。它们可以与其他目录常量以相同的方式使用。

“common”常量是指所有用户的配置文件。

“user”常量是指运行安装程序的用户的配置文件。此用户通常与当前登录的用户不同,因此请谨慎使用“user”常量。

{group}

用户在安装程序的“选择开始菜单文件夹”向导页面上选择的“开始”菜单文件夹的路径。除非安装以非管理员安装模式运行,否则此文件夹将在所有用户的配置文件中创建,在这种情况下,它将在当前用户的配置文件中创建。

{localappdata}

当前用户的本地(非漫游)应用程序数据文件夹的路径。

{userappdata} 和 {commonappdata}

应用程序数据文件夹的路径。

{usercf}

当前用户的“共用文件”目录的路径。仅 Windows 7 及更高版本支持 {usercf};如果在以前的 Windows 版本上使用,它将转换为与 {localappdata}\Programs\Common 相同的目录。

{userdesktop} 和 {commondesktop}

桌面文件夹的路径。

{userdocs} 和 {commondocs}

“我的文档”文件夹的路径。

{userfavorites}

当前用户的“收藏夹”文件夹的路径。(没有共用的“收藏夹”文件夹。)

{userfonts}

当前用户的“字体”文件夹的路径。仅 Windows 10 Version 1803 及更高版本支持 {userfonts}。与 {localappdata}\Microsoft\Windows\Fonts 相同的目录。

{userpf}

当前用户的“Program Files”目录的路径。仅 Windows 7 及更高版本支持 {userpf};如果在以前的 Windows 版本上使用,它将转换为与 {localappdata}\Programs 相同的目录。

{userprograms} 和 {commonprograms}

“开始”菜单上“程序”文件夹的路径。

{usersavedgames}

当前用户的“保存的游戏”目录的路径。

{usersendto}

当前用户的“发送到”文件夹的路径。(没有共用的“发送到”文件夹。)

{userstartmenu} 和 {commonstartmenu}

“开始”菜单的顶级路径。

{userstartup} 和 {commonstartup}

“开始”菜单上“启动”文件夹的路径。

{usertemplates} 和 {commontemplates}

模板文件夹的路径。

自动常量

除了“common”和“user”常量之外,Inno Setup还支持“auto”常量。这些常量会自动映射到其“common”形式,除非安装以非管理员安装模式运行,在这种情况下,它们会映射到其“user”形式。

建议尽可能始终使用这些“auto”常量以避免错误。

AdministrativeNon administrative
autoappdatacommonappdatauserappdata
autocfcommoncfusercf
autocf32commoncf32usercf
autocf64commoncf64usercf
autodesktopcommondesktopuserdesktop
autodocscommondocsuserdocs
autofontscommonfontsuserfonts
autopfcommonpfuserpf
autopf32commonpf32userpf

注意:表格中的竖线表示不同的映射关系,而非实际内容的一部分。在实际Markdown格式中,这些竖线不会被显示。这里仅是为了清晰地展示管理员和非管理员模式下自动常量的映射关系。

这些“auto”常量提供了一种便捷的方式,让安装程序能够根据当前的用户权限和环境自动选择正确的文件夹路径。这有助于简化安装脚本的编写,并确保在各种不同的情况下都能正确地访问和修改文件和文件夹。

重命名常量

Inno Setup 6 对一些目录和 Shell 文件夹常量进行了重命名。虽然旧名称仍然受支持,但建议将您的脚本更新为新名称(或“auto”形式),否则编译器会发出警告。

旧名称新名称
cfcommoncf
cf32commoncf32
cf64commoncf64
fontscommonfonts
pfcommonpf
pf32commonpf32
pf64commonpf64
sendtousersendto

请确保在更新脚本时使用这些新名称,以确保与最新版本的 Inno Setup 兼容,并避免在未来版本中可能出现的任何问题。

其他常量

{\}

一个反斜杠字符。请参阅本页顶部的注释,以了解使用 {} 和仅使用 \ 之间的差异。

{%NAME|DefaultValue}

嵌入环境变量的值。

  • NAME 指定要使用的环境变量的名称。
  • DefaultValue 确定如果用户系统上不存在指定的变量,则要嵌入的字符串。
  • 如果您想在常量中包含逗号、竖线(“|”)或闭合大括号(“}”),则必须通过“%-encoding”对其进行转义。将字符替换为“%”字符,后跟其两位十六进制代码。逗号是“%2c”,竖线是“%7c”,闭合大括号是“%7d”。如果您想包含实际的“%”字符,请使用“%25”。
  • NAME 和 DefaultValue 可以包含常量。请注意,您不需要像上面描述的那样转义常量的闭合大括号;只有当闭合大括号在其他地方使用时才需要这样做。

示例:

{%COMSPEC}
{%PROMPT|$P$G}

{cmd}

系统标准命令解释器的完整路径名,Windows\System32\cmd.exe。请注意,在扩展此常量时,不会使用 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 和 DefaultValue 可以包含常量。请注意,您不需要像上面描述的那样转义常量的闭合大括号;只有当闭合大括号在其他地方使用时才需要这样做。

示例:

{ini:{win}\MyProg.ini,Settings,Path|{autopf}\My Program}

{language}

所选语言的内部名称。有关更多信息,请参阅 [Languages] 部分文档。

{cm:MessageName}
{cm:MessageName,Arguments}

基于活动语言嵌入自定义消息值。

  • MessageName 指定要读取的自定义消息的名称。有关更多信息,请参阅 [CustomMessages] 部分文档。
  • Arguments 可选地指定消息值的逗号分隔的参数列表。
  • 如果您想在常量中包含逗号、竖线(“|”)或闭合大括号(“}”),则必须通过“%-encoding”对其进行转义。将字符替换为“%”字符,后跟其两位十六进制代码。逗号是“%2c”,竖线是“%7c”,闭合大括号是“%7d”。如果您想包含实际的“%”字符,请使用“%25”。
  • Arguments 中的每个参数都可以包含常量。请注意,您不需要像上面描述的那样转义常量的闭合大括号;只有当闭合大括号在其他地方使用时才需要这样做。

示例:

{cm:LaunchProgram,Inno Setup}

如果英语是活动语言,则上面的示例将翻译为“Launch Inno Setup”。

注册表值嵌入

{reg:HKxx\SubkeyName,ValueName|DefaultValue}

此语法用于嵌入注册表值。

  • HKxx 指定根键;请参阅 [Registry] 部分文档以获取可能的根键列表。
  • SubkeyName 指定要读取的子键名称。
  • ValueName 指定要读取的值的名称;如果希望读取键的“默认值”,请留空 ValueName。
  • DefaultValue 确定在指定的注册表值不存在,或不是字符串类型(REG_SZ 或 REG_EXPAND_SZ)时要嵌入的字符串。
  • 如果要在常量中包含逗号、竖线(“|”)或闭括号(“}”),必须通过“%-encoding”进行转义。将字符替换为“%”字符,后跟其两位十六进制代码。逗号是“%2c”,竖线是“%7c”,闭括号是“%7d”。如果要包含实际的“%”字符,请使用“%25”。
  • SubkeyName、ValueName 和 DefaultValue 可以包含常量。请注意,不需要如上所述转义常量的闭括号;只有当闭括号在其他地方使用时才需要这样做。

示例:
{reg:HKA\Software\My Program,Path|{autopf}\My Program}

命令行参数值嵌入

{param:ParamName|DefaultValue}

此语法用于嵌入命令行参数值。

  • ParamName 指定要读取的命令行参数的名称。
  • DefaultValue 确定在指定的命令行参数不存在,或其值无法确定时要嵌入的字符串。
  • 如果要在常量中包含逗号、竖线(“|”)或闭括号(“}”),必须通过“%-encoding”进行转义。将字符替换为“%”字符,后跟其两位十六进制代码。逗号是“%2c”,竖线是“%7c”,闭括号是“%7d”。如果要包含实际的“%”字符,请使用“%25”。
  • ParamName 和 DefaultValue 可以包含常量。请注意,不需要如上所述转义常量的闭括号;只有当闭括号在其他地方使用时才需要这样做。

示例:
{param:Path|{autopf}\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}:日志文件名称,如果未启用日志记录,则为空字符串。
通用参数 (Common Parameters)

在所有条目被分为参数的部分中,有三个可选参数是受到支持的。它们是:

语言 (Languages)

一个由空格分隔的语言名称列表,它告诉安装程序该条目属于哪些语言。如果最终用户从这个列表中选择了一种语言,那么该条目就会被处理(例如:文件会被安装)。

没有指定 Languages 参数的条目总是会被处理,除非其他参数指示它不应该被处理。

除了空格分隔的列表,您还可以使用布尔表达式。关于布尔表达式的示例,请参阅“组件 (Components)”和“任务 (Tasks)”参数。

示例:

Languages: en nl
最低版本 (MinVersion)

一个条目要被处理的最低 Windows 版本。如果使用“0”,那么该条目将永远不会被处理。可以包含构建号和/或服务包级别。这会覆盖脚本的 [Setup] 部分中的任何 MinVersion 指令。

没有指定 MinVersion 参数的条目总是会被处理,除非其他参数指示它不应该被处理。

示例:

MinVersion: 6.2
仅低于版本 (OnlyBelowVersion)

本质上是 MinVersion 的相反。它指定了条目不被处理的最低 Windows 版本。例如,如果您设置了 6.2,并且用户正在运行 Windows 7,那么该条目会被处理,但如果用户正在运行 Windows 8(其版本报告为 6.2)或更高版本,它将不会被处理。设置为“0”意味着没有上限版本限制。可以包含构建号和/或服务包级别。这会覆盖脚本的 [Setup] 部分中的任何 OnlyBelowVersion 指令。

没有指定 OnlyBelowVersion 参数的条目总是会被处理,除非其他参数指示它不应该被处理。

示例:

OnlyBelowVersion: 6.2
组件和任务参数 (Components and Tasks Parameters)

除了 [Types]、[Components] 和 [Tasks] 之外,所有将条目分为参数的部分都支持两个可选参数。它们是:

组件 (Components)

一个由空格分隔的组件名称列表,它告诉安装程序该条目属于哪些组件。如果最终用户从这个列表中选择了一个组件,那么该条目就会被处理(例如:文件会被安装)。

没有指定 Components 参数的条目总是会被处理,除非其他参数指示它不应该被处理。

示例:

[Files]
Source: "MYPROG.EXE"; DestDir: "{app}"; Components: main
Source: "MYPROG.CHM"; DestDir: "{app}"; Components: help
Source: "README.TXT"; DestDir: "{app}"
任务 (Tasks)

一个由空格分隔的任务名称列表,它告诉安装程序该条目属于哪个任务。如果最终用户从这个列表中选择了一个任务,那么该条目就会被处理(例如:文件会被安装)。

没有指定 Tasks 参数的条目总是会被处理,除非其他参数指示它不应该被处理。

请注意,在“选择开始菜单文件夹”向导页面上的“不创建开始菜单文件夹”复选框不会影响带有 Tasks 参数的 [Icons] 条目,因为它们有自己的复选框。

示例:

[Icons]
Name: "{group}\My Program"; Filename: "{app}\MyProg.exe"; Components: main; Tasks: startmenu
Name: "{group}\My Program Help"; Filename: "{app}\MyProg.chm"; Components: help; Tasks: startmenu
Name: "{commondesktop}\My Program"; Filename: "{app}\MyProg.exe"; Components: main; Tasks: desktopicon

除了空格分隔的列表之外,您还可以使用布尔表达式作为 Components 和 Tasks 参数。支持的运算符包括 not、and 和 or。例如:

[Components]
Name: a; Description: a
Name: b; Description: b

[Tasks]
Name: p; Description: a or b; Components: a or b
Name: q; Description: a and b; Components: a and b
Name: r; Description: not a or b; Components: not a or b
Name: s; Description: not (a or b); Components: not (a or b)
Name: t; Description: a or b - old style; Components: a b

注意:在上面的 [Tasks] 示例中,最后一个任务的描述提到了“旧样式”。这是因为在早期版本的 Inno Setup 中,当多个组件名称连续列出而没有使用明确的逻辑运算符时,它们被解释为逻辑“或”(OR)关系。然而,为了清晰和避免混淆,建议始终明确使用 or 运算符来表示这种关系。

【程序封装】使用inno setup将exe程序封装成向导安装程序 使用Inno Setup打包出来的安装包很多时候都需要有管理员权限,比如写系统位置的注册表、拷贝文件到系统目录之类的都需要有管理员权限,可以通过修改Inno Setup的配置现实1.首先下载ResourceHacker,下载地址https://resource-hacker.en.softonic.com/2.在Inno Setup的安装目录下找到SetupLdr.e32文件,使用ResourceHacker打开(SetupLdr.e32源文件最好备份一个,以免后面操作不当导致文件有问题)3.选。 阅读详情

相关推荐

使用Inno Setup 6制作软件安装包(一)

制作软件安装包的工具非常多,比如SetupFactory、NSIS、Advanced Installer等等,都可以制作不同样式的软件安装包,但是在这些软件里面,Inno Setup最好,原因是他可以定制化个性的安装界面和卸载界面,只是难度大一点,需要额外的写代码去实现。上面的代码,都是需要自己去写的,所以我都加了备注,方便理解,每一个属性的值,都表示不同的意思,配置的项目也非常的多,所以,就不一 一说明了。卸载后,文件夹全部删除,卸载的比较干净彻底,不会出现卸载不掉或者卸载不干净的情况。

故里2130 1830

Inno Setup:强大的开源安装程序制作工具

Inno Setup 是一款功能强大的开源安装程序制作工具,自1997年以来由 Jordan Russell 和 Martijn Laan 共同开发和维护。它能够帮助开发者轻松创建 Windows 应用程序的安装程序,支持自定义安装界面、多语言支持、脚本编写等功能。Inno Setup 不仅适用于个人开发者,也广泛应用于企业级软件的安装包制作。 ## 项目技术分析 Inno Setup 的核心...

gitblog_00828的博客 946

如何使用Inno Setup制作Unity构建程序的Windows安装程序

使用Inno Setup制作Unity构建程序的Windows安装程序

Lawa0592的博客 2351

使用inno setup生成桌面安装程序最新教程,常用功能及详解。

本文主要讲解inno setup如何生成一个安装包以及一些问题的解决方案,如安装时增加密码,修改默认安装路径,删除文件等。需要进行中英文配置

z37411的博客 1万+

程序发布系列 inno setup制作安装程序

与install shiled相比,inno setup是一个简单而且实用的制作安装程序的工具,工具中提供了脚本编程,能方便而且快捷的制作出安装程序,在一次制作安装程序的过程中,遇到了一些问题,做了下整理1,inno setup的一些资料inno setup的官方网址 http://www.jrsoftware.org/inno setup的语言包 http://www.jrsoftware.

宋文超的专栏 3168

Inno Setup 制作安装包完全免费

如果您只需要在 Windows 中对两个文件(和)进行简单的打包安装,使用 Inno Setup 是一个不错的选择。Inno Setup 是一个免费的安装程序制作工具,非常适合您的需求。

Hellc007的博客 1078

Inno Setup打包教程(将已经打包为exe文件的java项目程序,打包为可安装的Windows程序以及最新版inno中文汉化)

Inno Setup打包教程(将已经打包为exe文件的java项目程序,打包为可安装的Windows程序)以及最新版inno中文汉化

qq_57427605的博客 1万+

将Python打包的exe使用 Inno Setup Compiler制作安装包

1、使用Pyinstaller打包python代码;2、inno setup compiler的安装配置;3、配置中文语言包;4、制作安装包;5、QA 在这里推荐其他博主的一篇文章,请参考: 《Python脚本打包成exe,看这一篇就够了!_python 打包-优快云博客》 具体内容不再赘述,该文章比较详细请参考。 官方地址:Inno Setup Inno Setup是一个免费的安装制作软件,小巧、简便、精美是其最大特点,支持pascal脚本,能快

danzaibin002的专栏 1173

Inno Setup创建安装程序Setup.exe的详细教程

Inno Setup是一款免费且功能强大的安装程序制作工具,它能够帮助我们轻松创建安装程序。本文将详细介绍如何使用Inno Setup创建安装程序Setup.exe。

weixin_73953650的博客 1841

Inno Setup安装程序制作工具的全面解析

Inno Setup是一款强大的Windows平台安装程序制作工具,它用于创建安装包,将应用程序部署到目标计算机上。自1997年首次发布以来,Inno Setup凭借其免费开源、高效稳定的特点,在IT业界获得广泛应用,尤其受到独立开发者和中小企业的青睐。Inno Setup是一款专为易用性而设计的安装包创建软件,其界面简洁直观,使得初次接触的用户也能快速上手。主界面由多个预设好的向导步骤组成,分别是:选择组件设置文件安装类型其他任务脚本文件创建安装包。

weixin_32005771的博客 1298

Inno Setup:打造专业的安装包制作教程

Inno Setup是一个功能强大的安装制作工具,它为开发者提供了一个简便的方式来创建Windows平台下的安装程序。它是由Jordan Russell开发,基于Pascal脚本语言,允许用户编写复杂的安装脚本,从而实现高度定制化的安装体验。Inno Setup的安装程序是通过脚本来控制的,脚本由一系列的指令组成,每一个指令都是独立的,用来执行一个特定的功能。安装程序的脚本结构主要包括以下部分:定义段([Setup]、[App]等)初始化段([Code])

weixin_36431814的博客 1146

delphi Inno Setup 制作安装程序

delphi Inno Setup 制作安装程序; 脚本由 Inno Setup 脚本向导 生成!; 有关创建 Inno Setup 脚本文件的详细资料请查阅帮助文档!以 优快云博客备份工具2.0.1 制作为例 [Setup]; 注: AppId的值为单独标识该应用程序。; 不要为其他安装程序使用相同的AppId值。;

潇湘博客 1933

Inno Setup 5:专业Windows安装程序构建工具

Inno Setup是一款广泛使用的免费安装制作工具,由Jordan Russell开发,并由Martijn Laan维护。它支持Windows平台,能够生成具有图形用户界面的安装包。Inno Setup被众多软件开发者用于创建他们的应用程序安装程序,因其灵活性和强大的脚本语言而受到青睐。这款工具对于希望快速创建稳定安装包的IT专业人员来说是一个宝贵资源。Inno Setup脚本是一种灵活的脚本语言,允许开发者编写复杂的逻辑来控制安装过程。

weixin_35728286的博客 1271

Unity发布PC版,使用Inno Setup制作安装程序

文章目录一. 前言二. 关于Inno Setup三. 下载四. 使用 一. 前言 Unity发布PC版,会生成一个.exe文件和一个Data文件夹,想制作成一个Setup.exe程序,方便发布出去给别人安装和运行。 网上找了一圈,发现了一个免费、简便、小巧而强大的工具:Inno Setup,只有4MB哦。 二. 关于Inno Setup 官网:https://jrsoftware.org/isinfo.php github地址:https://github.com/jrsoftware/issrc 三. 下

linxinfa的专栏 3876

Inno Setup 安装程序制作全面指南

本文还有配套的精品资源,点击获取 简介:Inno Setup是一款高效的安装制作工具,主要面向Windows应用程序的安装包创建。它允许用户自定义安装过程,提供多语言支持、自动更新、自解压功能和Unicode支持。Inno Setup编译器以简洁易读的Pascal脚本语言为基础,拥有丰富的预定义函数和变量,以及强大的权限管理能力。该工具还支持图标和图形的自定义,并保持了良好...

weixin_29867767的博客 1924

WPS制作甘特图实操(带图超详细)

一、数据准备 图1 二、添加公式 在表格的E3处添加公式:=IF(C3>=G3,0,IF(C3+D3>=G3,G3-C3,D3)),点击该单元格的右下角。使鼠标箭头变“+”后下拉拖拽,复制该公式。F3处的公式为:=D3-E3,使用相同的拖拽方式复制公式应用,操作完毕如下图3. 图2 图3 三、插入图表 1、选中方框1内容,按住ctrl按键,继续选择2、3列的内容,点击插入全部图表中的条形图,选择2对应的图标样式,生成图6的样式。 点击图6中的3标尺,右击选择数据弹出图8,点击+号选择表格中

m0_49047167的博客 3万+

《如何将 Python 打包的 EXE 制作成安装程序?附 Inno Setup 使用教程》

通过 Inno Setup,您能将 Python EXE 快速转换为用户友好的安装程序,提升软件的专业性和易用性。整个过程仅需 10-15 分钟,适合个人开发者和小型项目。尝试扩展脚本功能(如添加许可协议或自定义图标),让您的应用分发更高效。如果您遇到问题,参考Inno Setup 文档或社区论坛获取更多帮助。

2501_93928670的博客 1263

关于esp32蓝牙模块的使用——esp32学习笔记

关于esp32蓝牙模块的使用——esp32学习笔记 零、前言 esp32自带蓝牙模块可以让我们进行蓝牙连接并进行数据交换 一、经典蓝牙BT 首先来编写代码,经典蓝牙的使用非常简单,首先声明使用了BluetoothSerial这个库,然后使用SerialBT.begin函数设置蓝牙的名字,再然后就是设置配对码,由于这里没有用到配对码,所以我将注释掉。当配对成功我们就使用printf函数打印出蓝牙配对成功。 #include <Arduino.h> #include <BluetoothSer

qq_53965184的博客 5万+

Engine-Simulator 完整上手指南:如何从零跑出逼真发动机声音

Engine-Simulator 是一个实时内燃机仿真项目,专注模拟发动机运转过程并生成逼真的引擎声音。它不做工程级精确计算,而是让你直观看到活塞、曲轴、气门如何协同工作,同时监听这套结构发出的声响。适合想拆解实时音频管线、或用可视化方式理解四冲程循环的开发者。 [![Engine-Simulator 运行界面:KOHLER CH750 发动机 1545 RPM,左侧仪表盘显示 FPS、延迟、点

gitblog_00730的博客 879

组态王7.5和SQLsever数据库交互

摘要:本文详细介绍了组态王7.5与SQL Server 2016数据库交互的实现流程,包括建立连接、数据存储与查询操作。主要内容涵盖ODBC数据源配置、数据库表格创建、数据插入及查询功能实现(含日期控件查询)

gsjkwg的博客 1578

【迁移学习综述】

迁移学习的目标是将某个领域或任务上学习到的知识应用到不同的但相关的领域或问题中。迁移学习的研究来源于一个观测:人类可以将以前的学到的知识应用于解决新的问题,更快的解决问题或取得更好的效果。迁移学习被赋予这样一个任务:从以前的任务当中去学习知识(knowledge)或经验,并应用于新的任务当中。换句话说,迁移学习目的是从一个或多个源任务(source tasks)中抽取知识、经验,然后应用于一个目标领域(target domain)当中去。

afadgas的博客 4319

inno setup 安装mysql_Inno Setup制作windows部署Web项目环境一键安装程序,inno setup同时安装jdk、mysql、redis、nginx、nodejs等环境...

Inno Setup制作windows部署Web项目环境一键安装程序项目需求项目最近需要在windows服务器部署Web项目,环境部署大致需要如下软件:jdk、mysql、redis、nginx、nodejs等。为了降低安装难度,所以决定使用windows常用的软件安装方式进行部署,经过查找和搜索,最终决定使用开源软件Inno Setup进行制作。Inno Setup简介InnoSetup 是一个...

weixin_34856444的博客 1597

Plecs电力电子仿真专业教程-第一季 补充课程 Plecs的安装教程与软件下载

PLECS4.1.64免安装版本–点我下载 Plecs.Standalone-3.7.2版本--关注加私信给我可以提供下载链接 补充课程 Plecs的安装教程与软件下载 详细介绍Plecs软件的安装过程

1万+
上一篇: 【编程技巧】数据库优化技巧——针对模糊查询的性能提升
下一篇: 【软件工具】 Inno Setup 帮助翻译 - 1. Inno Setup 是什么?
星瑙提神
博客等级 码龄20年 274粉丝 20原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值