公众号旧文
Windows上msi和exe的安装包有什么区别?
在 Windows 世界里,软件安装主要有两种形式:
一种是 .exe 安装程序,另一种是 .msi 安装包。
比如我之前一直在写的远程控制软件 RustDesk,就提供:

虽然二者都能完成安装软件这件事,但它们的定位完全不同。
简单来说:
- EXE:普通程序形式的安装器
- MSI:Windows 官方的标准化安装数据库
一、EXE:最常见的安装程序
.exe 是 Windows 可执行程序(Executable) 的通用格式。
也就是说,一个 .exe 文件本质上就是一个普通程序,只不过它的功能是 执行软件安装流程。
例如:
setup.exe
install.exe
chrome_installer.exe
当你双击 .exe 安装包时,实际上是运行了一个程序,这个程序会:
- 显示安装向导
- 解压文件
- 复制文件到系统目录
- 写入注册表
- 创建快捷方式
- 安装依赖组件
EXE 的最大特点是完全自由。
开发者可以随意设计安装逻辑,比如:
- 检查系统版本
- 下载最新组件
- 在线安装
- 安装多个程序
- 自定义 UI
因此很多软件都使用 EXE 安装器,比如浏览器、游戏、驱动程序等。
但缺点也很明显:
系统很难统一管理这些安装程序。
Windows 并不知道 EXE 内部做了什么。
二、MSI:Windows 的标准安装格式
.msi 是 Microsoft Installer 的安装包格式。
它并不是一个普通程序,而是一个 数据库文件,里面记录了完整的软件安装信息,例如:
- 需要安装哪些文件
- 文件要复制到哪里
- 需要创建哪些注册表
- 需要哪些组件
- 卸载时要删除哪些内容
真正执行安装的程序是 Windows 自带的:
msiexec.exe
当你双击 .msi 文件时,其实就是调用了:
msiexec /i program.msi
也就是说:
MSI 安装由 Windows 系统统一管理。
三、MSI 的核心优势
MSI 的设计目标是:可管理、可自动化、可维护。
因此它具备很多企业环境需要的能力。
1、统一的安装与卸载
Windows 会记录 MSI 安装的所有组件,因此可以做到:
- 精确卸载
- 修复安装
- 升级软件
例如:
msiexec /x program.msi 卸载
msiexec /f program.msi 修复
2、支持静默安装
MSI 天生支持自动化部署,例如:
msiexec /i program.msi /quiet
整个安装过程不会弹出任何界面。
这在 企业批量部署电脑 时非常重要。
3、支持组策略部署
在企业 Windows 域环境中,管理员可以通过 组策略(Group Policy) 直接推送 MSI 软件。
例如:
- 所有电脑自动安装某个软件
- 自动升级软件版本
- 自动卸载旧版本
EXE 通常做不到这一点。
4、支持安装修复
MSI 可以检测软件是否损坏。
如果发现某个文件被删除,Windows 可以自动修复。
这种机制叫:Self-healing(自我修复)
四、EXE 和 MSI 的核心区别
| 特性 | EXE | MSI |
|---|---|---|
| 文件类型 | 可执行程序 | 安装数据库 |
| 执行方式 | 直接运行 | 由 msiexec 执行 |
| 灵活性 | 非常高 | 较严格 |
| 系统管理 | 难管理 | Windows 原生管理 |
| 自动化部署 | 一般不支持 | 原生支持 |
| 企业环境 | 较少使用 | 常用 |
| 静默安装 | 不统一 | 标准化 |
简单理解:EXE 更自由,MSI 更规范。
五、为什么很多软件既有 EXE 又有 MSI?
很多软件都会同时提供两种安装包,例如:
software_setup.exe
software_enterprise.msi
它们面向的用户群体不同。
EXE 面向:
- 普通个人用户
- 下载安装即可
MSI 面向:
- 企业 IT 管理员
- 批量部署电脑
例如公司里有 500 台电脑,管理员不可能手动安装软件,而是会通过域策略直接推送 MSI。
六、其实很多 EXE 里面也藏着 MSI
一个很多人不知道的事实是:
很多 EXE 安装包其实只是 MSI 的外壳。
很多安装器,如:
- InstallShield
- WiX
- Inno Setup
- NSIS
会把 MSI 打包进 EXE 里。
EXE 的作用只是:
- 检查系统环境
- 解压 MSI
- 调用
msiexec安装
因此有时候你用解压工具打开 EXE,会发现里面其实藏着 .msi 文件。
七、总结
EXE 和 MSI 的本质区别,其实是 “自由安装”与“标准化安装” 的区别。
- EXE
- MSI
因此在个人电脑上,我们最常见的是 EXE 安装器;而在企业 IT 环境中,更常见的则是 MSI 安装包。
理解了这一点,再看到软件提供两种安装包时,你就会知道:
EXE 是给普通用户准备的,MSI 是给系统管理员准备的。