MSI 和 EXE 安装文件之间的主要区别是什么?

Dha*_*udh 14 windows-installer

我们当然看到一些.exe要执行的文件,但是 MSI 文件的不同功能是什么?

Bob*_*Bob 12

什么是安装程序?好吧,安装程序准备一个系统以允许程序运行:它安装该程序。在此过程中,安装程序(在 Windows 上)可能会将文件复制到系统位置、放置启动它的快捷方式、更新库、删除旧版本等。没有通用的安装程序标准或格式;任何执行这些操作(“安装”另一个程序)的程序都可以称为安装程序。

Windows 中的“exe”文件称为可移植可执行文件,包含任意指令,本机机器代码或 .NET 字节码。PE 格式没有任何内容可以将其识别为安装程序。当然,您可以使用任意机器代码编写安装程序 - 而您看到的那些“exe”安装程序采用这种方法。

有些人编写自己的自定义安装程序。其他人使用安装程序生成器来节省一些时间和精力;其中包括 NSIS、InnoSetup、InstallShield 等。

MSI是一种特定格式,用于存储有关安装的信息、要采取的步骤以及放置哪些文件的数据库。它本身是不可执行的;它实际上是由msiexec.exeWindows 系统解释的。然后,该解释器将按照 MSI 文件中列出的步骤进行操作。理论上,您可以创建任何使用类似于 MSI 的数据库的 exe(以及 NSIS、InnoSetup 等,执行类似操作)。

MSI 的特别之处在于它包含在内置工具中并由内置工具解释,并且它还集成到 Active Directory 中,以便在企业环境中的多台机器上更轻松地部署,Clem 的回答更详细地介绍了这一点。


Ste*_*mul 7

MSI 文件是数据库文件(特别是 MS-SQL 数据库),它通过数据库表描述安装,并通过 MSI 文件本身定义的一组复杂的安装序列进行安装。

MSI 文件不会像“Clem”所写的那样在后台安装为 EXE 文件 - 它们由可通过msiexec.exe 命令行界面访问的Windows 安装程序引擎使用。或者尝试高级安装程序的带注释的 msiexec.exe 命令行示例。然后安装本身通过两个不同的顺序运行:用户界面顺序和实际安装顺序- 后者使用LocalSystem 帐户在系统上下文中运行。这种安排是必要的,以允许安装程序临时管理员权限,或适当的提升权限

EXE 安装程序可以是任何东西。大多数情况下,它们是不基于数据库的旧式基于脚本的安装程序,但 EXE 文件也可以是包含 MSI 文件和相关运行时组件的包装器。这一切都取决于并且必须在每个特定情况下进行调查。


小智 6

MSI 是 Microsoft Silent Installer 的首字母缩写,它在后台运行 .exe 安装程序。

它用于 GPO,例如,如果您想在您管理的 Windows 基础结构上部署应用程序,您必须使用 MSI 创建新的 GPO 规则,并且 MSI 将安装在每台机器上,而无需用户干预。

GPO 是“组策略对象”,它“在 Active Directory 环境中提供操作系统、应用程序和用户设置的集中管理和配置”。

  • ...更像是 [M]icro[s]oft [I]nstaller。你从哪里得到“沉默”?不,MSI * 不* 在后台运行 PE exe(它们 * 有能力 *,但这不是它们唯一甚至主要的功能)。 (6认同)
  • `Windows 安装程序(以前称为 Microsoft 安装程序)是一个软件组件...` - [维基百科](http://en.wikipedia.org/wiki/Windows_Installer)。是的,MSI 是 MicroSoft 安装程序,而不是静默安装程序。 (4认同)
  • 这个答案的大部分实际上是错误的。请阅读此线程中的其他答案。 (4认同)