我即将开始一个新的 InstallShield 项目。项目类型有三种选择:
- 基本微星
- 安装脚本
- 安装脚本-MSI
各有什么优缺点?我应该选择哪一个?
基本微星:
这是标准安装类型。它使用 Windows Installer 进行几乎所有的安装(先决条件、语言选择和其他一些事情由 setup.exe 处理)。MSI 是一个包含许多表的数据库,这些表描述了安装的工作方式。表的数量一开始可能有点庞大,但 InstallShield 在抽象方面做得很好;大多数时候,您不需要直接编辑数据库表。
这是最常见的安装类型,因此有很多关于它的信息。InstallShield 论坛是一个很好的信息来源。此外,许多安装使用 MSI,因此如果您了解它们,将更容易理解其他安装的作用(例如,如果您需要安装其他制造商的 MSI 作为安装的一部分)。使用命令行参数可以轻松完成静默安装。
不幸的是,由于 MSI 通过数据库表控制安装,因此存在一些学习曲线。如果您最终不得不直接编辑 MSI 表,一开始可能会感到困惑,因为有很多表,并且它们的一些用途和交互是微妙的。此外,在 MSI 中创建和排序对话更加困难,因为所有交互都需要由表控制。可以创建自定义 MSI 对话框,但只能在 C++ 中创建。
对于大多数用途,我会推荐这种项目类型。
安装脚本:
这些项目使用安装脚本而不是 Windows Installer 来安装软件。由于安装脚本是一个线性程序,因此更容易理解它的工作原理。这种项目类型的一个优点是创建和排序对话更容易。此外,InstallScript 对话框可以设置外观并且看起来比 MSI 对话框好一点。运行静默安装需要单独的“响应文件”来控制 UI。我不建议使用这种项目类型,除非您有特定的理由(例如,如果您必须以 MSI 不支持的方式非常精确地控制安装行为)。
安装脚本 MSI:
这本质上是一个基本的 MSI 项目,它使用 InstallScript 来控制 UI,并使用 MSI 来控制实际安装。它的优点是使用 MSI 来控制安装,但使用对话框更容易。在静默安装期间,它仍然需要一个响应文件来控制 UI。如果您不关心静默安装或有复杂的 UI 对话框序列,您可能会发现此项目类型很有用。