EXE和MSI安装程序之间有什么区别?

MrB*_*MrB 12 windows-installer installaware

我使用Installaware创建了一个安装包,并生成了一个EXE和一个MSI.EXE为3.1MB,MSI仅为265K.为什么尺寸会有这么大的差异?

Ste*_*mul 14

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


MSI文件只能由msiexec.exe - Windows Installer引擎启动.MSI文件是能够安装软件的Windows Installer数据库文件.它要求至少可以安装正确版本的Windows Installer引擎运行时.大多数系统都是最新的引擎版本,因为它通过Windows Update下载.

您生成的EXE文件是一个自解压启动器​​应用程序,包含MSI本身以及设置可能具有的各种运行时要求.

EXE文件的各种组件可能包括:

  • MSI要求的Windows Installer引擎运行时版本(当前版本5.0).这些天运行时应该由Windows Update安装,您的设置应该只验证它是否存在.
  • MSI中的自定义操作所需的脚本运行时(Installshield的Installscript)
  • 应用程序所需的.NET运行时版本(现在获得10个版本).我更喜欢使用Windows Update,但如果你的应用程序是最先进的,你可能想要包含所需的引擎.
  • 徽标文件和启动画面,可能使用不同语言进行多语言设置
  • 其他几个组件也是可能的

请注意,EXE文件也可以是非MSI安装程序.换句话说,不是基于Microsoft MSI格式的旧式安装程序 - 存储在办公室风格的二进制文件中的MS-SQL数据库 - 而是各种格式的安装脚本,如Wise Script,Instalscript,Inno Setup等.但是,在这种情况下,问题是关于来自InstallAware构建的exe和MSI之间的大小差异,然后差异是上面解释的运行时.


Jas*_*Jas 5

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


Jim*_*som -7

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