Windows Installer是基于数据驱动模型的,该模型在一个软件包中提供所有安装数据和命令。相比而言,传统的脚本安装程序基于过程模型,为应用程序提供脚本命令。脚本安装程序强调如何安装,而Windows Installer强调安装什么。其实很好理解,这就是面向对象和面向过程的区别。如果你去看Windows Installer里面封装的内容,那么你会发现你们也有一系列的脚本去说明是如何安装这些程序的。
Windows Installer有很多优良的特性,比如支持自我修复,应用程序能够自动重新安装因用户误删而丢失的文件,这个特性在Windows 7中经常体现。当你的程序因为某种原因不能正常运行时,Windows 7就会提示你,要重新安装该应用程序还是这个应用程序已经正确安装了。这一招看似很“人性化”,不过我觉的它就是初级用户的杀手啊。
Windows Installer还提供回滚安装的能力。这就是一个事务性的具体体现,就不多说了。
Windows Installer支持公共语言运行库程序集的功能,比如安装,修复会移除程序等等。
最后,Visual Studio自带的部署工具也是基于Windows Installer而进行的。