什么是MSI中的“安装脚本”?

时间:2013-05-23 10:04:38

标签: windows-installer

官方Microsoft文档在许多地方引用了一些“安装脚本”。敌人的例子是here

  

而是安装程序将自定义操作写入安装   脚本。

我仔细检查了MSDN和一些关于MSI的书籍 - 并且无法找到明确的定义是什么installation script,它与MSI引擎的关系以及它是如何完全

  

安装脚本可以在安装之外执行   在其中编写的会议

是否有关于此installation script的一些定义和文档,或者是仅为了书目目的引用的一些未记录的MSI引擎内部结构?

1 个答案:

答案 0 :(得分:2)

Windows Installer是一种声明性(vs命令式)编程语言。您可以使用表数据来表达安装,而不是使用某种语言编写“脚本”。例如,考虑表格:

功能 - >功能组件 - 组件 - 目录

组件 - >文件

您告诉MSI,当安装给定功能时,需要安装属于它的组件。安装组件时,需要创建目录并需要复制文件。如果安装程序回滚,则需要删除文件和目录。

这由各种标准操作(如CreateFolders和InstallFiles)处理。我们不会编写任何脚本来完成此任务。

但是,实际上有一个脚本。它由Windows Installer本身在运行时生成。在修改机器状态的任何标准动作中都有两个不同的阶段:

脚本生成 - 安装程序正在仔细考虑需要完成的操作并动态生成要执行的操作列表

脚本执行 - 安装程序现在正在执行该脚本。注意:这发生在InstallFinalize

记录您喜欢的安装程序并开始查看InstallFiles操作。你会看到两个阶段。

在编写自己的自定义操作时,这是非常重要的事情。有关该主题的更多信息,请参阅:

Installation Phases and In-Script Execution Options for Custom Actions in Windows Installer