Inno Setup安装程序制作工具
用InnoSetup做安装包真心方便,向导式操作,几分钟就能生成一个漂亮的原生安装程序,支持脚本定制,强烈推荐给需要封装软件的朋友。 发表评论
- 软件类别:开发编程
- 软件大小:3.9M
- 更新时间:2026-09-07 19:19
- 软件版本:v6.0.3安装包封装利器
- 软件语言:中文
- 软件等级:

- 软件厂商:
- 官方网址:https://jrsoftware.org/isinfo.php
- 备案号:
- 评分
- 立即下载
手机扫描下载
应用介绍
日常办公里,经常能看到一些软件安装包,双击后一路下一步就能装好,界面干净利落,甚至还能自定义安装路径、创建桌面快捷方式。这些安装包有不少就是靠Inno Setup做出来的。它本身是个免费工具,体量不大,却能把程序文件、资源文件、注册表信息打包成一个标准的Windows安装程序。对于开发者、运维人员,或者偶尔需要帮同事封装小工具的普通用户来说,掌握它能省下不少事。
Inno Setup不是那种需要折腾半天才能上手的重型工具。下载解压后,你会看到一个向导式的脚本编辑器,熟悉Delphi或Pascal语法的人会觉得格外亲切,不懂代码也没关系,因为大部分常用功能可以通过向导界面逐步配置完成。它生成的是真正的Windows原生安装界面,没有广告弹窗,没有强制捆绑,这一点在如今的环境里显得挺难得。
这篇文章会从实际使用场景出发,聊聊怎么用Inno Setup制作安装包、遇到常见问题怎么排查,也整理了一些官方文档里不太起眼但很实用的功能点。如果你正想找一个靠谱的安装包制作工具,不妨看看下面这些内容。
用Inno Setup打包程序的基本流程是什么?
用Inno Setup做一个基础安装包,核心思路是:新建脚本→指定要打包的文件→设置安装参数→编译生成。
1.打开Inno Setup,菜单栏选择“文件”→“新建”,会弹出向导。如果只是简单打包,直接选“下一步”快速创建脚本即可。
2.在“应用程序信息”页面填好软件名称、版本、 publisher(发布者)和默认安装目录。这里需要留个心,默认安装目录通常写{autopf}\你的软件名,这样能自动适配32位或64位系统。
3.进入“应用程序文件”页面,点击“添加”按钮,把主程序exe、依赖的dll、配置文件等全部加进去。如果文件较多,可以直接把整个文件夹拖拽到下方的列表区域,Inno Setup会自动递归添加子目录所有文件。
4.接下来是“应用程序快捷方式”设置,勾选“在开始菜单中创建快捷方式”以及“允许用户在安装过程中创建桌面快捷方式”。这里还可以自定义快捷方式名称,建议别用默认的“Uninstall”,容易误导用户。
5.最后一步是“安装模式”和“编译输出目录”,选择“为当前用户安装”或“为所有用户安装”会影响后续是否需要管理员权限。输出目录建议单独建一个文件夹,方便查找生成的setup.exe。
6.保存脚本文件(.iss后缀),点击工具栏上的“编译”按钮。如果脚本没报错,输出目录里就会生成可执行的安装包。整个过程其实不需要手写一行代码,但生成的脚本文件是纯文本的,用记事本就能打开查看具体每一行的含义。
这里有个使用体验上的对比:像NSIS(Nullsoft Scriptable Install System)这类工具虽然功能更强,但它的脚本语法对新手不太友好,写错了排查起来比较费劲。Inno Setup的编译器报错信息相对直白,会指出具体是哪一行、什么原因,修改起来效率高很多。对于大多数Windows桌面程序的安装包制作需求,Inno Setup的学习成本明显更低。
初次使用时,容易忽略的是“权限”设置。如果软件需要写入注册表或Program Files目录,安装时必须请求管理员权限。在脚本的[Setup]段中,PrivilegesRequiredOverridesAllowed参数可以控制是否允许用户选择安装范围,但在向导模式下,这个选项不会直接暴露,需要手动在脚本里添加。这一点对很多从网上现成模板复制脚本的人来说是个坑,容易导致安装包在某些电脑上安装失败。
还有一个细节,Inno Setup的默认压缩算法是LZMA2,压缩率高但速度偏慢。如果打包的文件体积很大(比如超过1GB),可以改用zip压缩算法,编译速度会有明显提升,代价是安装包体积会略微增大。这个选项在脚本的[Setup]段中通过Compression参数调整,比如写成Compression=zip
怎么给安装包添加自定义欢迎页和许可协议?
很多正规软件的安装过程,会先显示一个欢迎页面,接着是许可协议,需要用户勾选“我同意”才能继续。Inno Setup原生支持这些页面,只是默认模板比较朴素,文字排版和背景色都是系统默认的。想要做出更贴合自家软件风格的界面,可以通过修改脚本中的[Messages]段内容来实现。
举一个实操例子:在脚本中搜索WelcomeLabel1和WelcomeLabel2,这两行分别控制欢迎页的主标题和副标题。把默认的“Welcome to the [name] Setup Wizard”改掉,换成一句简短的介绍语,比如“感谢选择某某工具,安装前请先阅读以下说明”,能让安装包看起来更定制化。需要注意的是,这里支持中文字符,但前提是安装包的语言文件选了中文。
许可协议页面则更简单,只需在脚本中找到LicenseFile参数,指定一个rtf格式或txt格式的许可协议文件路径即可。Inno Setup支持rtf格式,可以在Word或WPS里编辑好另存为rtf,这样协议里就能带格式排版,比如加粗标题、不同字号等。如果软件是开源的,想显示MIT或Apache协议,直接指定对应的文本文件也能正常显示。
不少人在网上找的Inno Setup中文美化模板,其实核心就是改动[Messages]段里的字符串,以及配合[Code]段写一些自定义绘制代码。对于不想深挖代码的普通用户,建议只改文字内容就好,别去动主题结构,否则容易出现字体错位、按钮显示不全的问题。毕竟安装程序的主要任务是顺利完成安装,界面美观是在稳定基础上的加分项。
这里额外说一个容易踩的坑:如果安装包同时需要显示多语言许可协议,Inno Setup的官方语言文件只覆盖了按钮和提示文字,协议内容本身需要自己准备多个语言版本,并通过[Languages]段和[Code]段配合动态加载。如果只做纯中文或纯英文安装包,就不用考虑这么多。
Inno Setup脚本里如何判断系统是32位还是64位?
写Inno Setup脚本时,处理系统架构是个绕不开的点,尤其当软件包含64位专用驱动或32位兼容库时。如果判断错误,轻则文件安装到错误目录导致软件无法运行,重则触发系统兼容性提示。
在脚本的[Code]段,可以用Is64BitInstallMode函数来判断当前操作系统架构。常见的用法是:
function Is64Bit: Boolean;beginResult := Is64BitInstallMode;end;
然后在[Files]段,通过Check参数调用这个函数,按架构分别添加不同文件。比如32位版本的动态库放到{app}\x86,64位的放到{app}\x64,安装时根据系统自动选择正确的文件。实际测试中,在Windows 10和Windows 11的64位系统上,这个函数返回结果都是准确的。
另外,注册表操作也要区分架构。32位程序在64位系统上访问注册表时,默认会被重定向到Wow6432Node节点。如果打包的是32位软件,但想读取或写入原生64位注册表键值,需要在[Registry]段添加Check: Is64BitInstallMode条件,并用regedit64标志。很多老软件打包后出现找不到DLL或配置不生效,往往就是注册表写入位置不对导致的。
对于使用Inno Setup 6的开发者来说,官方已经默认支持64位安装模式,只要脚本里没显式设置ArchitecturesInstallIn64BitMode,编译器会按当前系统位数自动选择。但在制作安装包时,仍然建议手动检查一遍脚本,确保没有遗漏架构相关的参数。
分享一下实际操作中的体验:使用Inno Setup 6.0.3版本,在64位Windows 11系统上编译,默认生成的安装包是32位兼容的,可以在32位和64位系统上运行。但如果软件本身只支持64位,最好在脚本中加上ArchitecturesAllowed=x64compatible,这样能避免用户在32位系统上强行安装导致后续问题。
Inno Setup如何创建开始菜单文件夹和卸载信息?
安装软件后,用户通常能在开始菜单找到程序组,控制面板的“程序和功能”里也能看到对应的卸载入口。Inno Setup默认就会生成这些,但默认的文件夹名称和卸载图标样式比较普通。通过脚本调整,可以让这些细节更规范。
在[Setup]段中,DefaultGroupName参数控制开始菜单文件夹名称。如果不设置,默认会使用软件名称。如果想在开始菜单中创建多级目录,可以用反斜杠分隔,比如DefaultGroupName=MyCompany\MySoft,这样开始菜单里会先出现“MyCompany”文件夹,再在里面放“MySoft”的快捷方式。
卸载程序的显示信息,主要由UninstallDisplayName和UninstallDisplayIcon参数控制。前者是控制面板里显示的程序名称,后者可以指定一个ico格式的图标文件路径。比如想让卸载项显示自定义图标,可以写UninstallDisplayIcon={app}\uninstall.ico,前提是打包时把这个ico文件也添加进去。
此外,如果软件安装时选择了为所有用户安装,卸载时同样需要管理员权限。Inno Setup生成的卸载程序会根据安装时的权限设置自动请求UAC提权,不需要额外编写代码。但有一点要注意,卸载程序默认会删除整个安装目录,如果目录里存放了用户生成的数据文件,需要谨慎处理。可以在脚本中通过[Code]段的CurUninstallStepChanged过程来判断卸载步骤,保留某些特定文件或文件夹。
个人经验是,对于需要频繁更新迭代的软件,建议在脚本中保留PreviousVersionDetected等参数,配合GetPreviousData函数,可以在覆盖安装时保留用户的配置文件。不然每次更新都会把用户的设置清空,很容易招致用户反感。
表格:Inno Setup常用脚本参数速查
下面整理了Inno Setup脚本中几个高频使用的参数,方便快速查阅。这些参数在官方文档里都能找到详细说明,这里只做最精简的释义。
| 参数名 | 所属段 | 作用 | 示例 |
|---|---|---|---|
| AppName | [Setup] | 安装程序中显示的软件名称 | AppName=MyApp |
| AppVersion | [Setup] | 软件版本号,会在卸载信息中显示 | AppVersion=1.0 |
| DefaultDirName | [Setup] | 默认安装目录,可用常量 | DefaultDirName={autopf}\MyApp |
| Source | [Files] | 指定要打包的源文件路径 | Source: "dist\*.*"; DestDir: "{app}" |
| DestDir | [Files] | 文件安装到的目标目录 | DestDir: "{app}\bin" |
| IconFilename | [Icons] | 快捷方式图标文件 | IconFilename: "{app}\app.ico" |
以上参数是脚本中最基础的,实际使用时,还会涉及到PrivilegesRequired、OutputDir等,但上述内容足以应对简单的打包需求。如果希望进一步细化,比如添加自定义页面或执行外部程序,就需要涉足Pascal脚本的[Code]段,那是一个更广阔的范围。
类似安装包制作工具还有哪些?
除了Inno Setup,市面上还有一些同样定位的安装包制作软件,功能各有侧重。下面列出几款常见的,方便对比选择。
| 软件名称 | 特点 | 推荐指数 |
|---|---|---|
| NSIS | 脚本驱动,灵活度高,插件丰富 | ★★★★ |
| InstallShield | 老牌商业工具,支持多平台,功能强大 | ★★★★☆ |
| Advanced Installer | 可视化界面,支持MSI和EXE打包 | ★★★★ |
| WiX Toolset | 基于XML的安装包制作工具,适合开发团队 | ★★★☆ |
| Setup Factory | 简单易用,适合快速打包非复杂应用 | ★★★ |
如果只想做简单的绿色软件解压版,其实不需要安装包工具,直接用WinRAR制作自解压文件就行。但安装包能提供开始菜单快捷方式、卸载程序、注册表写入等功能,这些是自解压文件做不到的。
运行Inno Setup打包后的安装程序对电脑配置要求高吗?
Inno Setup生成的安装包本身运行起来并不消耗太多资源,它只是把文件解压并复制到目标位置。但因为安装过程中可能会调用系统组件,比如注册表操作、创建服务等,对系统环境有一定要求。下面是一个参考配置表,适用于大多数Windows平台下的安装包。
| 硬件项 | 最低配置 | 推荐配置 |
|---|---|---|
| CPU | 1GHz或更快的处理器 | 双核及以上 |
| 内存 | 512MB | 2GB及以上 |
| 显卡 | 支持DirectX 9即可 | 无特殊要求 |
| 硬盘空间 | 50MB可用空间 | 200MB以上 |
实际上,安装包的运行速度主要取决于硬盘读写速度和被安装软件的体积。如果安装包很大,机械硬盘下会明显感觉慢,固态硬盘则快很多。内存占用方面,Inno Setup安装进程的内存消耗通常在几十MB左右,不会对系统造成明显压力。
Inno Setup支持哪些快捷键操作?
Inno Setup的脚本编辑器本身提供了一些快捷键,能提高编写效率。不过很多新手不知道,安装包运行时也支持一些常见的快捷键,比如Ctrl+C复制、Ctrl+V粘贴在编辑框内都通用。下面列出脚本编辑器中常用的快捷键。
| 快捷键 | 功能 |
|---|---|
| Ctrl+F | 在脚本中查找文本 |
| Ctrl+H | 替换文本 |
| F9 | 编译当前脚本 |
| F1 | 打开帮助文档 |
| Ctrl+Space | 代码补全(需安装插件) |
关于代码补全,官方版本默认没有这个功能,可能需要借助第三方插件或外部编辑器。很多熟练用户会直接用VS Code或Notepad++写.iss脚本,然后回来用Inno Setup编译器编译,这样能利用更强大的编辑功能。
安装包制作中遇到问题怎么办?
问题:Inno Setup编译时报错“文件不存在”,但文件明明就在那里?
这是新手最容易遇到的问题。检查一下脚本中源文件的路径是否正确。Inno Setup中相对路径是相对于脚本文件所在目录,而不是当前工作目录。如果脚本放在A文件夹,文件在B文件夹,就需要写清楚相对路径,比如..\B\文件.exe。还有一种情况是文件名中包含空格,需要用引号括起来,例如Source: "C:\My Files\app.exe"。
问题:生成的安装包被杀毒软件误报怎么办?
这种情况并不少见,尤其是使用了一些第三方美化模板或加壳工具后。Inno Setup生成的安装包本身是安全的,但误报可能源于脚本中某些操作,比如修改注册表、添加启动项等。建议首先确认脚本内容没有恶意行为,然后可以尝试换个编译参数,比如关闭压缩(Compression=none),有概率减少误报。此外,对安装包进行数字签名能有效降低误报率,前提是需要购买代码签名证书。
问题:安装包在部分电脑上无法启动安装程序,提示“不是有效的Win32应用程序”?
这通常是因为安装包是在64位系统上编译的,但目标电脑是32位系统,且安装包未包含32位兼容层。Inno Setup 6默认生成的安装包同时支持32位和64位系统,但如果在脚本中显式设置了ArchitecturesInstallIn64BitMode=x64,那么32位系统就无法运行该安装包。解决办法是移除该参数,或者额外编译一个32位版本。
问题:安装过程中能否静默安装?
可以。Inno Setup支持静默安装参数/SILENT或/VERYSILENT。使用/SILENT时会显示进度条但不显示具体页面,/VERYSILENT则完全隐藏界面。这对于企业批量部署非常有用。但要注意,如果脚本中设置了需要用户交互的页面,比如自定义输入框,静默安装时这些页面会被跳过,可能导致软件安装后配置缺失。因此,设计静默安装时需要确保所有关键参数都有默认值。
问题:为什么安装包在部分电脑上安装速度特别慢?
这大概率是压缩算法导致的。LZMA2压缩率虽高,但解压时需要消耗CPU资源。如果目标电脑配置较低,安装时解压过程会非常吃力。解决办法是调整压缩算法,在脚本[Setup]段中,将Compression=lzma2改为Compression=zip,或者设置为Compression=none完全关闭压缩。如果安装包体积不是首要考虑因素,zip算法是个不错的折中。
补充一条实测中发现的问题:Inno Setup 6.0.3在英文系统上默认安装界面显示正常,但如果软件名称包含中文,部分旧版系统上可能乱码。解决办法是在脚本中指定语言为ChineseSimplified,并确保系统安装了东亚语言支持。另外,在Windows 7上测试时,如果未安装KB2990941更新,可能无法正常解压某些压缩文件,需要提示用户安装系统更新。
就个人使用感受而言,Inno Setup是一款很务实的工具。它没有炫酷的界面,但该有的功能一样不少。对于非专业开发者来说,可能只需要花半个小时看一遍向导,就能制作出像模像样的安装包。但对于追求更高级功能,比如自定义安装界面、多语言切换、安装前检测环境等,就需要静下心来研究Pascal脚本了。好在官方文档非常详细,网上也有大量中文教程和现成脚本可以参考。
如果只是临时应急,不想深入研究,也可以直接下载别人写好的脚本模板,替换文件名和路径即可。但建议还是理解一下每行参数的含义,这样遇到问题时才能自己排查。毕竟安装包制作是一项重复性工作,掌握原理后能避免很多弯路。
最后提醒一句,打包前一定要在干净的虚拟机或测试机上验证安装包行为,尤其是卸载功能。很多时候安装没问题,卸载时却残留文件或注册表项,这会直接影响用户体验。Inno Setup提供了[Code]段,可以编写卸载前的清理逻辑,但大多数情况下,只要文件都安装在{app}目录下,默认的卸载功能就足够干净了。
应用信息
- 包名:Inno Setup
- 名称:Inno Setup
- 版本:0
- MD5值:1cefdd2780517ba8b7d8dffe813e1423
热门专题
本类最新
网友评论
热门推荐
本类排行
- 1LabVIEW 2021永久激活版v2021免费版2.33G
- 2LabVIEW 2022破解版v2022专业开发版2.76G
- 3Visual Studio Code 2025中文最新版v1.96纯净版100.3M
- 4Visual Studio Code 2024激活版v1.98官方版93.9M
- 5Visual Studio Code 2023中文版v1.98官方版88.4M
- 6Visual Studio Code 2022中文解锁版v1.96纯净版75.4M
- 7R语言最新版本下载Windows版v4.5.0官方版85M
- 8JetBrains GoLand 2020中文版v2020.3.5最新版366M
- 9Maplesoft Maple 2022中文破解版v2022最新版3.91G
- 10Maplesoft Maple2021最新版v2021官方原版2.33G



















