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