InstallShield 综合教程
InstallShield 是业界领先的 Windows 安装程序开发工具,由 Flexera Software 公司开发,它可以帮助开发者创建专业、可靠、符合 Windows 安装规范的安装包,支持复杂的功能,如条件安装、序列号验证、自定义安装界面、配置文件修改、安装后服务等。

本教程将分为以下几个部分:
-
第一部分:基础入门
- 什么是 InstallShield?
- 为什么选择 InstallShield?
- 安装与界面概览
- 创建第一个安装项目(Hello World)
-
第二部分:核心概念与工作流程
- InstallShield 的项目结构
- 三种视图:Basic MSI, InstallScript, InstallScript MSI
- 安装包的三大核心要素:组件、功能、文件
-
第三部分:进阶功能详解
(图片来源网络,侵删)- 自定义安装向导界面
- 添加注册表项和 INI 文件
- 创建快捷方式和文件关联
- 安装条件与逻辑判断
- 安装后操作(如服务、重启)
- 安装序列号与许可证协议
-
第四部分:构建、打包与发布
- 配置构建设置
- 生成不同格式的安装包(.exe, .msi)
- 创建可分发的安装包
- 使用 InstallShield 打包工具
-
第五部分:学习资源与最佳实践
- 官方文档与教程
- 社区与论坛
- 开发技巧与常见问题
第一部分:基础入门
什么是 InstallShield?
InstallShield 是一个可视化的安装程序制作工具,它通过一个图形化界面,让你无需编写复杂的底层代码(如 Windows Installer API 或 C++),就能定义如何将你的应用程序文件、注册表信息、快捷方式等部署到用户的计算机上,并处理安装过程中的各种交互和逻辑。
为什么选择 InstallShield?
- 专业性:生成的安装包符合 Microsoft Windows Logo 认证要求,稳定可靠。
- 功能强大:支持几乎所有 Windows 安装场景,从简单的单文件应用到复杂的企业级软件部署。
- 灵活的安装体验:可以高度自定义安装界面,提供良好的用户体验。
- 自动化部署:支持静默安装、响应文件,便于企业批量部署。
- 丰富的集成:与 Visual Studio、CI/CD 工具链(如 Jenkins, Azure DevOps)有良好的集成。
安装与界面概览
- 下载与安装:访问 Flexera 官网,下载适合你版本的 InstallShield(InstallShield 2025 或更早的版本),安装过程比较直接,按照向导操作即可。
- 启动界面:启动 InstallShield 后,会看到一个欢迎界面,提供创建新项目、打开已有项目等功能。
- 主界面:创建项目后,你会看到主界面,主要由以下几个部分组成:
- 左侧视图窗格:显示项目的组织结构,如“安装设计器”、“安装脚本”、“资源”等。
- 中间窗格:根据你在左侧选择的节点,显示对应的属性设置或编辑器。
- 顶部工具栏:包含常用操作,如保存、构建、预览等。
- 底部输出窗口:显示操作日志、错误和警告信息。
创建第一个安装项目
让我们来创建一个最简单的安装包,目标是将一个文本文件安装到用户的桌面。
-
新建项目:
- 启动 InstallShield,选择 "Create a new project"。
- 在项目模板中选择 Basic MSI(这是最常用、最推荐的类型,基于 Windows Installer 技术)。
- 给项目命名,
MyFirstInstaller,并选择保存位置,点击 OK。
-
设置应用程序信息:
- 在左侧窗格中,展开 "Installation Designer" -> "General Information"。
- 在右侧窗格中,填写基本信息:
- Product Name:
我的第一个应用 - Version:
0.0 - Publisher:
我的公司 - GUID: 系统会自动生成一个唯一的标识符,请勿随意修改。
- Product Name:
-
添加文件:
- 在左侧窗格中,展开 "Installation Designer" -> "Files and Folders"。
- 在右侧窗格中,你会看到一个目标目录列表,默认的安装目录是
ProgramFilesFolder下的你的产品名文件夹。 - 我们想安装到桌面,所以需要添加一个新的目标目录。
- 在左侧 "Destination Computer's Folders" 列表中,右键点击
ProgramFilesFolder,选择 "New Folder...",命名为MyApp。 - 再次右键点击刚创建的
MyApp,选择 "New Folder...",命名为Desktop Shortcut,这个名称只是用于组织,实际路径会自动对应到桌面。
- 在左侧 "Destination Computer's Folders" 列表中,右键点击
- 添加你的文件,在左侧 "Source Computer's Files" 窗口中,找到你的文本文件(
readme.txt),直接拖拽到右侧Desktop Shortcut目录下。
-
构建安装包:
- 点击顶部工具栏的 Build 按钮(或按 F7)。
- InstallShield 会开始编译你的项目,如果一切顺利,底部输出窗口会显示 "Build Succeeded"。
- 构建成功后,你可以在项目目录下的
Build文件夹中找到生成的安装包,通常是一个名为Setup.exe的文件。
-
测试安装:
- 找到
Setup.exe,双击运行。 - 你会看到一个标准的 Windows 安装界面,点击 "Next",接受协议,选择安装路径(默认就是我们设定的),最后点击 "Install"。
- 安装完成后,去你的桌面查看,
readme.txt文件应该已经成功出现在那里了。
- 找到
恭喜!你已经成功创建了你的第一个 InstallShield 安装包。
第二部分:核心概念与工作流程
InstallShield 的项目结构
- Installation Designer:安装程序的核心设计器,用于定义所有安装行为,包括文件、注册表、组件、功能、界面等。
- InstallScript:如果你选择了 InstallScript 项目类型,这里可以编写自定义的安装逻辑脚本(类似 C 语言)。
- Release Wizard:打包向导,用于将构建好的文件打包成可分发的安装包(制作成 .exe 自解压包或 .iso 镜像)。
- Build Configuration:构建配置,用于定义编译选项,如目标平台、是否包含调试信息等。
- Media:媒体库,存放你项目中用到的图片、图标、许可协议文件等资源。
三种视图:Basic MSI, InstallScript, InstallScript MSI
这是理解 InstallShield 的关键。
-
Basic MSI (推荐):
- 基础:完全基于 Microsoft 的 Windows Installer (
.msi) 服务。 - 优点:系统自带支持,安装、修复、卸载非常稳定可靠;支持组策略(GPO);安装事务性,要么全部成功,要么全部回滚。
- 缺点:对于一些极其复杂的、需要深度系统交互的自定义逻辑,实现起来可能比较困难。
- 适用场景:绝大多数标准 Windows 应用程序。
- 基础:完全基于 Microsoft 的 Windows Installer (
-
InstallScript:
- 基础:InstallShield 自己的安装引擎,不依赖 Windows Installer。
- 优点:提供了最大的灵活性,可以编写复杂的脚本来控制安装的每一个步骤,实现几乎任何自定义功能。
- 缺点:安装包体积较大;用户需要先运行一个兼容层(
setup.exe),再执行脚本;修复和卸载功能不如 Basic MSI 稳定;不支持组策略。 - 适用场景:遗留系统、有非常特殊安装需求的应用(如需要重启后继续安装)。
-
InstallScript MSI:
- 基础:结合了 Basic MSI 和 InstallScript 的优点,它首先使用 Windows Installer (
.msi) 来处理标准安装,然后在需要的地方调用 InstallScript 来执行自定义逻辑。 - 优点:既有 Windows Installer 的稳定性和标准性,又有 InstallScript 的灵活性。
- 缺点:相对复杂,需要同时理解两种技术。
- 适用场景:当你需要利用 Windows Installer 的优点,同时又必须使用 InstallScript 来完成某些特定任务时。
- 基础:结合了 Basic MSI 和 InstallScript 的优点,它首先使用 Windows Installer (
建议:除非有特殊需求,否则始终选择 Basic MSI 作为起点。
安装包的三大核心要素:组件、功能、文件
这是组织你软件内容的基石。
-
Feature (功能):
- 是什么:对用户可见的、可选的软件包的一部分,你的软件可以有“核心功能”、“帮助文档”、“示例代码”等选项,用户可以在安装时选择安装哪些。
- 如何工作:在“安装设计器”的“Feature”视图中定义,用户在安装向导的“选择功能”页面看到的就是你在这里定义的功能。
-
Component (组件):
- 是什么:Windows Installer 的核心单元,一个组件是一组文件的集合,这些文件在逻辑上属于一个单元,必须被一起安装、一起卸载、一起修复。
- 关键规则:一个组件只能属于一个功能,但一个功能可以包含多个组件,一个组件不能包含在多个功能中。
- 为什么重要:组件是 Windows 追踪文件状态的基础,如果一个组件中的任何一个文件被用户或另一个程序删除,Windows Installer 会认为该组件已损坏,并在修复时重新安装所有文件。
- 如何工作:在“文件和文件夹”视图中,当你选择一个文件时,可以在属性中为其指定一个组件 ID,InstallShield 会自动为你管理组件。
-
File (文件):
- 是什么:最基本的内容,就是你要安装的
.exe,.dll,.config, 图片等所有文件。 - 如何工作:文件被放置到特定的目标文件夹,并关联到一个组件,进而包含在一个或多个功能中。
- 是什么:最基本的内容,就是你要安装的
关系链:文件 -> 组件 -> 功能 -> 用户选择
第三部分:进阶功能详解
自定义安装向导界面
在左侧窗格中,找到 User Interface 节点,这里你可以控制安装向导的每一个页面:
- Text:修改对话框的标题、说明文字。
- Controls:添加、删除或修改对话框上的控件(如文本框、按钮、复选框)。
- Dialogs:启用或禁用整个页面,如果你的软件只有一个功能,可以禁用“选择功能”页面。
添加注册表项和 INI 文件
- 注册表:在左侧展开
Registry,右键点击要修改的根项(如HKEY_LOCAL_MACHINE或HKEY_CURRENT_USER),选择New Key创建子项,然后可以添加新的String Value,DWORD Value等。 - INI 文件:在左侧展开
INI File,点击Add按钮,指定要修改的 INI 文件路径,然后可以添加、修改或删除其中的节和键值。
创建快捷方式和文件关联
-
快捷方式:
- 在左侧展开
Shortcuts,右键点击Shortcuts Folder,选择New Shortcut。 - 在右侧属性中,设置快捷方式的名称、目标(通常是你的主
.exe文件)、起始位置、图标等。 - 你可以指定这个快捷方式要出现在“开始菜单”的哪个文件夹里,或者是否在桌面创建。
- 在左侧展开
-
文件关联:
- 在左侧展开
File Associations,右键点击File Associations,选择New File Association。 - 在右侧属性中:
- Extension: 输入你的文件扩展名,如
.myapp。 - Description: 这种文件的描述,如 "My App Data File"。
- Icon: 为这种文件类型选择一个图标。
- Command: 选择当用户双击该文件时要打开的程序(你的
.exe文件)。
- Extension: 输入你的文件扩展名,如
- 在左侧展开
安装条件与逻辑判断
- 条件安装:在左侧
Components或Features上右键,选择Component/Suite/Feature Conditions,你可以设置条件,仅在 Windows 10 或更高版本上安装此功能”或“仅在检测到 .NET Framework 4.5 时安装”。 - 自定义操作:这是实现复杂逻辑的终极武器。
- 在左侧展开
Custom Actions。 - 右键点击
Custom Actions,选择New Custom Action。 - 你可以创建多种类型的自定义操作,
- DLL:调用一个 DLL 中的函数。
- EXE:运行一个外部程序。
- VBScript/JScript:执行一段脚本。
- InstallScript:执行一段 InstallScript 代码。
- 自定义操作可以绑定到安装的特定阶段,如安装前、安装中、安装后、重启前等。
- 在左侧展开
安装后操作
- 服务:如果你的应用包含一个 Windows 服务,可以在
Services节点中进行配置,设置服务的名称、显示名称、描述、启动类型(自动、手动)等。 - 重启:可以在
Execution Sequence中添加一个ForceReboot操作,在安装完成后强制计算机重启。
安装序列号与许可证协议
- 许可证协议:在
User Interface->Text中,找到WelcomeDlg或LicenseAgreementDlg,在LicenseFile属性中,指定你的EULA.txt文件的路径。 - 序列号:在
Installation Designer->Sequencing and Conditions中,可以设置序列号验证,用户必须输入正确的序列号才能继续安装。
第四部分:构建、打包与发布
配置构建设置
在左侧窗格中,展开 Build Configuration,在这里你可以:
- Platform:选择目标平台(如 x86, x64, ARM64)。
- Build Options:选择是生成调试版还是发布版。
- Output Location:设置构建输出文件的存放位置。
生成不同格式的安装包
- .msi 文件:标准的 Windows Installer 数据包,它本身不包含所有文件,需要配合一个引导程序(如
setup.exe)来运行,你可以在 Release Wizard 中配置。 - .exe 自解压包:最常见的形式,它将
.msi文件打包进一个.exe文件中,用户双击即可运行,无需关心.msi的存在,这是最方便用户分发的形式。
创建可分发的安装包
- 点击顶部工具栏的 Release Wizard 按钮。
- 向导会引导你完成以下步骤:
- 选择要发布的配置:选择你刚才配置好的构建配置。
- 选择发布格式:通常选择 "Single EXE"(单个可执行文件)。
- 设置发布选项:可以设置压缩级别、是否包含
.cab文件等。 - 指定输出位置:选择最终安装包要保存的文件夹。
- 完成后,Release Wizard 会生成一个或多个文件(通常是一个
Setup.exe和一个Setup.ini),这个Setup.exe就是你可以分发给最终用户的安装程序。
第五部分:学习资源与最佳实践
官方文档与教程
- InstallShield 帮助文件 (F1):这是最重要的资源,InstallShield 自带非常详尽的帮助文档,几乎涵盖了所有功能的用法,任何时候遇到问题,按 F1 查看帮助是第一步。
- Flexera 官方文档中心:https://docs.flexera.com/ 在线搜索最新的文档、知识库文章和教程。
社区与论坛
- Flexera 社区:https://community.flexera.com/ 官方论坛,可以在这里提问,与其他开发者交流,并获得官方技术支持。
开发技巧与常见问题
- 从小处着手:先实现最基本的文件安装,再逐步添加注册表、快捷方式等复杂功能。
- 善用预览功能:在构建之前,可以使用
Simulation模式来预览安装过程,这能帮你快速定位界面和逻辑问题。 - 注意清理:在卸载时,确保你的安装包能干净地删除所有它创建的文件、注册表项和快捷方式,在
Files and Folders中,你可以设置某个文件或文件夹是否在卸载时被删除。 - 测试,测试,再测试:在不同的 Windows 版本(如 Win10, Win11)和不同的权限(管理员标准用户)下反复测试你的安装包。
- 理解组件边界:牢记“一个文件,一个组件”的原则,不要将两个逻辑上无关的文件放在同一个组件里,这会给未来的维护带来麻烦。
希望这份详细的教程能帮助你顺利上手 InstallShield!安装程序开发是一门艺术,需要耐心和细致,但掌握它后,你的软件交付质量将得到极大的提升。
