18

我使用 Installaware 创建了一个安装包并生成了一个 EXE 和一个 MSI。EXE是3.1MB,MSI只有265K。为什么大小差别这么大?

4

3 回答 3

23

更新:一些资源,其中包含有关如何处理各种类型的 setup.exe 文件的信息:


MSI 文件msiexec.exe:MSI 文件只能由Windows 安装程序引擎启动。MSI 文件是能够安装软件的 Windows Installer 数据库文件。它至少需要正确版本的 Windows Installer Engine Runtime 才能安装。大多数系统都是最新的引擎版本,因为它是通过 Windows 更新关闭的。

EXE 文件:您生成的 EXE 文件是一个解压启动器​​应用程序,其中包含MSI本身以及安装程序可能具有的各种运行时要求。EXE 文件可能包括的各种组件:

  • MSI 所需的Windows Installer Engine Runtime版本(当前版本 5.0)。这些天这个运行时应该由 Windows 更新安装,你的设置应该只是验证它存在。
  • MSI 中自定义操作所需的脚本运行时(Installscript for Installshield)。
  • 应用程序所需的.NET 运行时版本。我也更喜欢为此使用 Windows 更新,但如果您的应用程序是最先进的,您可能希望包含所需的引擎。您可以将其设置为下载而不是嵌入吗?您也可以将其作为单独的下载提供。
  • 徽标文件和启动画面,可能以不同的语言用于多语言设置。
  • 其他几个组件是可能的。

Legacy Setup.exe 安装程序Note that an EXE file can also be a non-MSI installer换句话说,不是基于 Microsoft MSI 格式(存储在办公风格二进制文件中的 MS-SQL 数据库)的旧式安装程序,而是各种格式的安装脚本,例如Wise ScriptInstallscript,Inno Setup,NSIS,etc...但是,在这种情况下,问题是关于来自 InstallAware 构建的 EXE 和 MSI 之间的大小差异,然后差异是上面解释的运行时。

于 2014-05-22T19:24:45.880 回答
7

不同之处在于:MSI 包包含您的文件 + 安装脚本,实际安装由 Windows 的一部分 Microsoft Installer 运行,它负责显示 Windows、记录消息等。另一方面,您的 EXE 安装程序持有文件+实际程序逻辑来运行安装本身,负责几乎所有事情,因此有所不同。

于 2010-10-07T22:52:06.360 回答
-6

EXE 可能包含由 执行的安装例程,它只msiexec执行 MSI 中包含的任何安装脚本。

于 2010-10-07T22:51:18.677 回答