官方说明:Inno Setup Help
[Setup] Section用于设置安装程序和卸载程序使用的全局设置,其中某些指令对于创建任何安装程序都是必需的。
1. Compiler-related(编译相关的)
字段 | 值 | 功能 |
ASLRCompatible | yes/no,默认yes | 指定编译器是否应在安装程序和卸载程序的header中设置“Dynamic Base”标志。 此功能是5.5.7版本的新增功能 |
Compression | zip zip/1到zip/9 bzip bzip/1到bzip/9 lzma lzma/fast lzma/normal lzma/max lzma/ultra(有内存要求) lzma/ultra64(有内存要求) lzma2 lzma2/fast lzma2/normal lzma2/max(默认值) lzma2/ultra(有内存要求) lzma2/ultra64(有内存要求) none | 指定要在文件中使用的压缩方法和压缩级别。较高级别的压缩效果较好,但压缩的时间较长,而且在压缩/解压缩也需要更多内存。 ● zip 是属于 .zip 文件类型(“deflate”)的压缩方法。它在压缩和解压缩时最快,而且需要的内存也很低(在标准 9 时压缩和解压缩小于 1 MB),但与其它支持的压缩方法比较几乎不压缩。如果未指定压缩级别,则它的默认值为 7 ● bzip 是通过使用 bzip2 [external link] 压缩器的压缩方法。它的压缩要比 zip 压缩好,但通常在压缩和解压缩时较慢。如果未指定压缩级别,则它的默认值为 9。 ● lzma 是通过使用 7-Zip LZMA [external link] 压缩器的压缩方法。它比 zip 和 bzip 且有更高的的压缩率。可是,根据使用的压缩标准,它在压缩时很慢,且消耗更多的内存。如果未指定压缩级别,则它的默认值为 max。 ● lzma2 是通过使用 7-Zip LZMA2 [external link] 压缩器的压缩方法。LZMA2 是 LZMA 的修改版,它对不可压缩的数据提供一个更好的压缩比(随机数据扩展约0.005%,与原 LZAM 比较为1.35%),并且可随意并行压缩大型文件的多个部件,大大提高了压缩速度,但有可能减少压缩比。像 LZMA 一样,它可能会消耗大量的内存。如果未指定压缩级别,则它的默认值为 max。 ● none指定不使用压缩。 |
CompressionThreads | auto(默认) 1 2 (or higher) | 控制是否在LZMA和LZMA2压缩器上启用多线程匹配查找器。在具有多核的系统上,启用多线程匹配查找器可以将压缩过程加快50%或更多。 auto:可为所有压缩级别启用多线程匹配查找器,但不支持fast。 1:禁用 2 (or higher) :相当于auto 注意:对于LZMA2压缩器,此指令仅控制是否使用多线程匹配查找器。要支持并行压缩大文件的多个部分,请设置LZMANumBlockThreads。 |
DEPCompatible | yes/no,默认yes | 指定编译器是否应在安装程序和卸载程序的header中设置“NX Compatible”标志,以标记它们与数据执行阻止(DEP)兼容。此功能是5.5.7版本的新增功能。 如果在[Code]中使用的是可能有bug的第三方DLL,则需要将其设置为no。 |
DiskClusterSize | 默认值:512 | 指定磁盘介质的群集大小。编译器需要知道这一点,以便正确地将每个磁盘填满。 如果未指定DiskSpanning字段,则此字段被忽略。 |
DiskSliceSize | 262144到2100000000, max(默认值,即2100000000) | 指定每个磁盘片的最大字节数。 如果未指定DiskSpanning字段,则此字段被忽略。 |
DiskSpanning | yes/no,默认no | 是否启用磁盘span功能。yes表示启用,则编译器不会将所有压缩文件数据存储在SETUP.EXE中,而是将其拆分为多个SETUP-*.BIN文件(称为“切片”),适合复制到单独的软盘、CD-ROM或DVD-ROM上。 |
Encryption | yes/no,默认no | 设置为yes,则编译到安装包中的文件([Files]段中指定的)会使用ARCFOUR加密,用于加密的密钥是64位随机盐加上Password字段值的160位SHA-1哈希。 如果启用了加密,并且在用户输入正确密码前从[Code]段调用ExtractTemporaryFile 函数,则除非在[Files]段的项中使用noencryption标志,否则函数会失败。 |
InternalCompressLevel | none, 或者LZMA压缩级别之一, 默认值:normal | 指定要在安装程序的内部结构上使用的LZMA压缩级别。一般来说,不需要更改其默认设置。 |
LZMAAlgorithm | 0或1。如果LZMA压缩级别设置为fast,则默认值为0;否则默认值为1 | 控制LZMA和LZMA2压缩器使用的算法。 0启用快速算法。 1启用正常算法。 |
LZMABlockSize | 1024到262144 默认值:4*LZMADictionarySize | 当LZMANumBlockThreads设置为2或更高时,控制LZMA2压缩器使用的块大小(单位KB)。 注意:设置得太高可能会抵消使用多个块线程的好处。通常,块大小不应大于数据的总大小除以块线程数。 |
Output | yes/no,默认yes | 设置为no,编译器将只检查脚本是否有错误,不会生成安装包。 注意:它仍然会清理输出目录并删除清单文件,除非OutputDir和OutputManifestFile设置为空字符串。 |
OutputBaseFilename | 默认值:mysetup | 设置安装包名称 |
OutputDir | 默认值:Output | 设置安装包输出目录。默认情况下,它会在包含脚本的目录下创建一个名为“Output”的目录。 |
OutputManifestFile | 设置此字段后,编译器将创建一个清单文件,详细说明编译到安装程序中的文件的信息。除非包含路径,否则文件将在输出目录中创建。 例如:OutputManifestFile=Setup-Manifest.txt | |
SignedUninstaller | yes/no,如果设置了SignTool字段则默认为yes,否则默认no | 指定是否应在部署卸载程序(unins???.exe)时附加数字签名。如果卸载程序具有有效的数字签名,则用户在卸载时不会看到“unknown publisher”警告。 第一次编译此字段设置为yes的脚本时,将在SignedUninstallerDir字段指定的目录(默认为输出目录)中创建一个唯一命名的卸载程序exe文件副本。然后根据SignTool字段设置,系统会提示您使用外部代码签名工具将数字签名附加到此文件,或者会自动对文件进行即时签名。在随后的编译中,文件中的签名将嵌入已编译安装的卸载程序中。 |
SignedUninstallerDir | 默认值:OutputDir | 指定存储已签名卸载程序文件的目录,默认存储在输出目录中。 .表示放在源目录中 |
SignTool | 后面跟零个或多个参数的名称,用空格分隔 | 指定用于签名的签名工具的名称和参数: 当安装程序具有有效的数字签名时,用户在启动时不会看到“unidentified program”警告。 |
SignToolMinimumTimeBetween | 默认值0 | 指定编译器连续进行数字签名操作之间应该经过的最小毫秒数。可用于避免被速率限制的时间戳服务拒绝。 例如:如果设置为5000,则编译器最多每5秒执行1次数字签名。 |
SignToolRetryCount | 默认值2 | 指定编译器在出现任何错误时自动重试数字签名的次数。 |
SignToolRetryDelay | 默认值500 | 指定编译器在SignToolRetryCount指定的任何自动数字签名重试之前应等待的毫秒数。 |
SignToolRunMinimized | yes/no,默认no | 当设置为yes时,编译器将在最小化的窗口中运行Sign Tools。 |
SlicesPerDisk | yes/no,默认no | yes:启用实体压缩(solid compression)。这将导致所有文件同时压缩,而不是单独压缩。 缺点:由于所有文件都被压缩成一个压缩流,安装程序无法再随机访问这些文件。这可能会降低性能。如果某个文件不会在用户的系统中提取,它必须先将该文件的数据解压缩(到内存中),然后才能解压缩下一个文件。 例如:如果在提取特定文件时出错,用户单击“重试”,它就不能只查找该文件压缩数据的开头;由于所有文件都存储在一个流中,因此它必须从一开始就进行查找。如果启用了磁盘扩展,用户将不得不重新插入磁盘1。 |
SolidCompression | ||
SourceDir | 为脚本指定一个新的源目录。 | |
TerminalServicesAware | ||
UsedUserAreasWarning | ||
UseSetupLdr | yes/no,默认yes | 指定要创建哪种类型的安装程序。 yes:编程成一个exe no:编译成三个文件:setup.exe、setup-0.bin、setup-1.bin,一般用于调试 |
VersionInfoCompany | 默认值:AppPublisher,如果AppPublisher不包含常量 | 安装程序版本信息中的公司名的值。 如果 UseSetupLdr 被设置为 no,则该设置不起作用。 |
VersionInfoCopyright | 默认值:AppCopyright,如果 AppCopyright不包含常量 | 安装程序版本信息的版权值。 如果 UseSetupLdr 被设置为 no,则该设置不起作用。 |
VersionInfoDescription | 安装程序版本信息的文件描述值。 如果 UseSetupLdr 被设置为 no,则该设置不起作用。 | |
VersionInfoOriginalFileName | 指定安装程序版本信息的原始文件名值。 如果 UseSetupLdr 被设置为 no,则该设置不起作用。 | |
VersionInfoProductName | 安装程序版本信息产品名称值。 如果 UseSetupLdr 被设置为 no,则该设置不起作用。 | |
VersionInfoProductTextVersion | 安装程序版本信息的文本产品的版本值。 如果 UseSetupLdr 被设置为 no,则该设置不起作用。 | |
VersionInfoProductVersion | 最多4个用点分隔的数字形式的值,默认值:VersionInfoVersion | 指定安装程序版本信息的二进制产品版本值。 允许使用部分版本号。缺少的数字将被附加为零。 注意:只有Windows Vista SP2上的资源管理器才会显示此值。其他版本则显示VersionInfoProductTextVersion。 |
VersionInfoTextVersion | 默认值:VersionInfoVersion | 指定安装程序版本信息的文本文件版本值。 注意:此值仅显示在Windows 98及更早版本的资源管理器的“版本”选项卡上。稍后的版本显示二进制版本值(VersionInfoVersion)。 如果UseSetupLdr设置为no,则此设置无效。 |
VersionInfoVersion | 最多4个用点分隔的数字形式的值,默认0.0.0.0 | 指定安装程序版本信息的二进制文件版本值。 允许使用部分版本号。缺少的数字将被附加为零。 如果UseSetupLdr设置为no,则此设置无效。 |
2. Installer-related(安装卸载相关的)
这些字段会影响安装程序的操作,或者后续由卸载程序来使用。
字段 | 值 | 功能 |
AllowCancelDuringInstall | ||
AllowNetworkDrive | ||
AllowNoIcons | ||
AllowRootDirectory | ||
AllowUNCPath | yes/no,默认yes | 如果设置为否,则不允许用户在安装向导的“选择目标位置”页面上输入UNC路径(如“\\server\share”)。这是Inno Setup 2.0.17及更早版本中的默认行为。 要完全禁止安装到网络位置,还必须将AllowNetworkDrive设置为no。 |
AlwaysRestart | yes/no,默认no | 当设为 yes 时,安装程序不管是否需要,总是在安装结束时提示用户重新启动系统。 例如:[Files] 段条目带有 restartreplace 标记 |
AlwaysShowComponentsList | ||
AlwaysShowDirOnReadyPage | ||
AlwaysShowGroupOnReadyPage | ||
AlwaysUsePersonalGroup | ||
AppendDefaultDirName | ||
AppendDefaultGroupName | ||
AppComments | 此字符串显示在控制面板中。 该值可能包括常量。 | |
AppContact | 此字符串显示在控制面板中。 该值可能包括常量。 | |
AppId | 默认值:AppName | 表示应用的唯一ID |
AppModifyPath | ||
AppMutex | 此字段用于防止用户在应用程序正在运行时安装应用程序的新版本,并防止用户卸载正在运行的应用程序。它指定一个或多个命名互斥量的名称(多个互斥量用逗号分隔),安装程序和卸载程序将在启动时检查这些互斥体。如果互斥量存在,则安装程序/卸载程序将显示:[Setup or Uninstall] has detected that [AppName] is currently running. Please close all instances of it now, then click OK to continue, or Cancel to exit. 使用此字段需要在程序中创建对应的互斥对象。 例如:CreateMutex(NULL, FALSE, "MyProgramsMutexName"); 注意: ① 不需要在应用程序终止时显式地销毁互斥对象;系统将自动执行此操作。也不建议这样做,因为理想情况下互斥对象应该存在,直到进程完全终止。 ② Windows中的互斥对象名称比较是区分大小写的。 | |
AppName | 必填字段。 指定要安装的应用程序的名称。不需要包含版本号,版本号是由AppVersion或AppVerName 字段定义。 如果DisableWelcomePage字段设置为yes(默认情况下为yes),则AppVerName将显示在窗口标题,而不是AppName。 如果未指定AppId、VersionInfoDescription和VersionInfoProductName字段,则此字段的值也用作这些字段的默认值。 此字段可以包含常量 | |
AppPublisher | 此字符串显示在“添加/删除程序”控制面板小程序的“支持”对话框中。 该值可能包括常量。 | |
AppPublisherURL | ||
AppReadmeFile | ||
AppSupportPhone | 此字符串显示在控制面板中。 该值可能包括常量。 例如:AppSupportPhone=1-800-555-1212 | |
AppSupportURL | ||
AppUpdatesURL | ||
AppVerName | 指定应用程序的名称及其版本号。此值将显示在安装程序向导的欢迎页面上,并用作控制面板中应用程序的的默认标题。 该值可能包括常量。 例如:AppVerName=My Program 1.5 | |
AppVersion | 必填字段。 指定要安装的应用程序的版本号。 | |
ArchitecturesAllowed | 下列中的一个/多个,空格分隔: x86 x64 arm64 ia64 | 指定安装包可以在什么系统上运行。 如果不指定,则安装包可以在所有可以执行32位软件的系统在运行。 如果指定,则如果用户的处理器体系结构不是此指令中指定的体系结构之一,安装程序将显示一条错误消息并退出。 |
ArchitecturesInstallIn64BitMode | 下列中的一个/多个,空格分隔: x64 arm64 ia64 | 指定安装程序在64位安装模式下运行。如果未指定,则在32位安装模式下运行。 |
ChangesAssociations | ||
ChangesEnvironment | yes/no/布尔表达式,默认:no | yes/布尔表达式=True:安装程序将在安装结束时通知其他正在运行的应用程序(尤其是Windows资源管理器),它们应该从注册表中重新加载环境变量。 如果安装包创建或更改了环境变量,但未将ChangesEnvironment设置为yes,则在用户注销或重新启动计算机之前,从资源管理器启动的应用程序将看不到新的或更改的环境变量。 |
CloseApplications | force/yes/no,默认:yes | yes/force:且安装程序未以静默方式运行,则如果安装程序检测到应用程序正在使用的文件需要由[Files]或[InstallDelete]更新,则安装程序将在“准备安装”向导页面上暂停,显示应用程序并询问用户安装程序是否应自动关闭应用程序并在安装完成后重新启动它们。 yes/force:且安装程序以静默方式运行,则安装程序将始终关闭并重新启动这些应用程序,除非通过命令行告知不要这样做。 force:安装程序将在关闭应用程序时强制关闭,除非通过命令行告知不要关闭。这可能会导致用户丢失未保存的工作。 |
CloseApplicationsFilter | ||
CreateAppDir | yes/no,默认:yes | no:不会为应用程序创建任何目录,也不会显示“选择目标位置”向导页面,并且{app}目录常量等于{win}目录常数。 如果在CreateAppDir为否时启用了卸载功能,则卸载数据文件将在系统的Windows目录中创建。 |
CreateUninstallRegKey | ||
DefaultDialogFontName | ||
DefaultDirName | 指定默认安装目录。通常前缀是目录常量。 如果UsePreviousAppDir设置为yes(默认值),并且安装程序发现已经安装了同一应用程序的低版本,则它将用以前选择的目录替换默认目录名。 例如:DefaultDirName={sd}\MYPROG,即:C:\MYPROG | |
DefaultGroupName | 指定开始菜单中的文件夹名称。如果未指定,则使用"Default" | |
DefaultUserInfoName | ||
DefaultUserInfoOrg | ||
DefaultUserInfoSerial | ||
DirExistsWarning | ||
DisableDirPage | auto/yes/no,默认:auto | yes:不显示选择目标位置的向导页面 auto:安装程序启动时,在注册表中查看是否已安装相同的应用程序,如果已安装,则不会显示“选择目标位置”向导页面。 如果不显示“选择目标位置”向导页面,则将始终使用默认目录名。 |
DisableFinishedPage | ||
DisableProgramGroupPage | auto/yes/no,默认:auto | yes:不显示“选择开始菜单文件夹”的向导页面。 auto:安装程序在启动时,在注册表中查看是否已安装相同的应用程序,如果已安装,则不会显示“选择开始菜单文件夹”向导页面。 如果未显示“选择开始菜单文件夹”向导页面,它将始终使用默认的开始菜单文件夹名称。 |
DisableReadyMemo | ||
DisableReadyPage | ||
DisableStartupPrompt | ||
DisableWelcomePage | ||
EnableDirDoesntExistWarning | ||
ExtraDiskSpaceRequired | ||
InfoAfterFile | ||
InfoBeforeFile | ||
LanguageDetectionMethod | ||
LicenseFile | ||
MinVersion | 格式:major.minor 默认值:6.1sp1 (Windows 7 with Service Pack 1 or Windows Server 2008 R2 with Service Pack 1) | 指定软件运行的Windows最低版本。可能包括内部版本号和/或sp级别。 如果用户的系统不符合最低版本要求,安装程序将显示一条错误消息并退出。 |
OnlyBelowVersion | ||
Password | ||
PrivilegesRequired | ||
PrivilegesRequiredOverridesAllowed | ||
RestartApplications | ||
RestartIfNeededByRun | ||
SetupLogging | yes/no,默认:no | yes:安装程序将始终创建一个日志文件。相当于在命令行上传递/LOG。 日志路径:%TEMP%\Setup Log YYYY-MM-DD #NNN.txt |
SetupMutex | ||
ShowLanguageDialog | auto/yes/no,默认:yes | yes:且有多个[Languages] 段时,将显示“选择语言”对话框,以便用户有机会覆盖默认选择的语言设置。 no:不显示“选择语言”对话框 auto:只有当安装程序找不到匹配的语言标识符时,才会显示“选择语言” 对话框。 |
TimeStampRounding | ||
TimeStampsInUTC | ||
TouchDate | ||
TouchTime | ||
Uninstallable | ||
UninstallDisplayIcon | 指定一个特定的图标文件(可执行文件或.ico文件),以便在控制面板的“卸载”项中显示。 如果指定的文件包含多个图标,则可以附加后缀“,n”来指定图标索引,其中n是从零开始的数字索引。 例如:UninstallDisplayIcon={app}\MyProg.exe,1 | |
UninstallDisplayName | 指定控制面板中程序(program)条目的名称。 该值可能包括常量。 如果未制定,则使用[Setup]段中AppVerName的值作为名称。 | |
UninstallDisplaySize | ||
UninstallFilesDir | ||
UninstallLogMode | append/new/overwrite | append:默认值。指定安装程序在可能的情况下附加到现有的卸载日志。 new:指定安装程序始终创建一个新的卸载日志。 overwrite:指示安装程序覆盖同一应用程序中的任何现有卸载日志,而不是附加到这些日志中(不建议这样做)。附加到现有日志的规则也适用于覆盖现有日志。 |
UninstallRestartComputer | ||
UpdateUninstallLogAppName | ||
UsePreviousAppDir | yes/no,默认:yes | yes:安装程序在启动时,在注册表中查看是否已安装相同的应用程序,如果已安装,则将使用上次安装的目录作为向导中提供给用户的默认目录。 |
UsePreviousGroup | ||
UsePreviousLanguage | ||
UsePreviousPrivileges | ||
UsePreviousSetupType | ||
UsePreviousTasks | ||
UsePreviousUserInfo | ||
UserInfoPage |
3. Cosmetic(安装卸载外观)
这些字段只影响安装程序的外观
字段 | 值 | 功能 |
AppCopyright | 当WindowVisible设置为yes时,指定安装程序在背景窗口的右下角显示的版权消息。 例如:AppCopyright=Copyright (C) 1997-2005 My Company, Inc. | |
BackColor | ||
BackColor2 | ||
BackColorDirection | ||
BackSolid | ||
FlatComponentsList | yes/no,默认:yes | yes:安装程序组件列表使用平面复选框 no:安装程序组件列表使用3D复选框 |
SetupIconFile | 指定用于安装/卸载的自定义程序图标。 运行编译器时,文件必须位于安装的源目录中,除非指定了完全限定的路径名或路径名前缀为“compiler:”,在这种情况下,它会在编译器目录中查找文件。 建议在图标中至少包含以下尺寸:16x16、32x32、48x48、64x64和256x256。 如果未指定,则使用上述大小的内置图标。 | |
ShowComponentSizes | yes/no,默认:yes | yes:安装程序在组件列表中显示组件的大小。 根据最大的组件决定显示单位是KB或MB |
ShowTasksTreeLines | yes/no,默认:no | yes:安装程序将在父和子之间显示“树线”。 |
WindowShowCaption | yes/no,默认:yes | no:安装程序将是真正的“全屏”——它不会有标题栏或边框,而是位于任务栏顶部。 如果WindowVisible未设置为yes,则此字段无效。 |
WindowStartMaximized | yes/no,默认:yes | yes:安装程序的背景窗口最初将以最大化状态显示,不会覆盖任务栏。 如果WindowVisible未设置为yes,则此字段无效。 |
WindowResizable | yes/no,默认:yes | no:用户将无法在设置程序的背景窗口未最大化时调整其大小。 如果WindowVisible未设置为yes,则此字段无效。 |
WindowVisible | yes/no,默认:no | yes:向导后面将显示一个渐变背景窗口。 |
WizardImageAlphaFormat | ||
WizardImageFile | 指定要显示在向导左侧的位图文件的名称。支持通配符,运行编译器时,文件必须位于安装的源目录中,除非指定了完全限定的路径名或路径名前缀为“compiler:”,在这种情况下,它会在编译器目录中查找文件。 256色位图在256色模式下可能无法正确显示,因为它不处理调色板。 当指定了多个文件时,安装程序将自动选择最符合系统DPI设置的文件。每个DPI设置的位图大小建议为: 100% 164x314 125% 192x386 150% 246x459 175% 273x556 200% 328x604 225% 355x700 250% 410x797 如果未指定,则将使用支持多个DPI设置的内置向导图像。 例如:WizardImageFile=myimage.bmp,myimage2.bmp | |
WizardSmallImageFile | 指定要显示在向导右上角的位图文件的名称。支持通配符,运行编译器时,文件必须位于安装的源目录中,除非指定了完全限定的路径名或路径名前缀为“compiler:”,在这种情况下,它会在编译器目录中查找文件。 256色位图在256色模式下可能无法正确显示,因为它不处理调色板。 当指定了多个文件时,安装程序将自动选择最符合系统DPI设置的文件。每个DPI设置的位图大小建议为: 100% 55x55 125% 64x68 150% 83x80 175% 92x97 200% 110x106 225% 119x123 250% 138x140 如果未指定,则将使用支持多个DPI设置的内置向导图像。 例如:WizardSmallImageFile=mysmallimage.bmp,mysmallimage2.bmp | |
WizardStyle | classic/modern,默认:classic | classic:经典外观 modern:现代外观。即:安装程序和卸载程序将显示更现代的外观,并且WizardResizable和WizardSizePercent的默认值分别更改为yes和120120 |
WizardResizable | yes/no 如果WizardStyle字段设置为modern,则默认值为yes;其他为no | yes:用户可以调整安装向导窗口的大小 |
WizardSizePercent | 格式:a,b 其中a表示水平大小,b表示竖直大小,有效值:100-150。 如果WizardStyle字段设置为modern,则默认值为120,120;否则默认值为100,100 | 用于增加所有安装和卸载向导窗口的默认大小,而不增加字体大小。例如120的尺寸意味着尺寸增加了20%。 如果只指定一个值,则它将同时用作水平尺寸和垂直尺寸。 |
WizardImageStretch | yes/no,默认:yes | yes:如果图像大于或小于所需大小,则向导图像将被拉伸或收缩。 no:如果图像大于所需,则向导图像将集中在各自的区域中,如果图像小于所需,将剪裁向导图像。 |