windows-installer - MSI 中的 "installation script"是什

微软官方文档在很多地方都提到了一些“安装脚本”。敌人的例子,here :

Instead the installer writes the custom action into the installation script.

我仔细检查了 MSDN 和一些关于 MSI 的书籍 - 找不到明确的定义这个安装脚本是什么,它与 MSI 引擎有什么关系以及如何正是

installation script can be executed outside of the installation session in which it was written

它是关于此安装脚本 的一些定义和文档,还是一些未记录的MSI 引擎内部构件,仅供引用?

最佳答案

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

Feature -> Feature Components - Component -Directory

组件 -> 文件

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

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

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

脚本生成——安装程序仔细考虑需要做什么并动态生成要执行的操作列表

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

记录您最喜欢的安装程序并开始在其中查找 InstallFiles 操作。您会看到这两个阶段。

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

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

关于windows-installer - MSI 中的 "installation script"是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16711018/

相关文章:

Django - Python help_text 作为可点击的图标

erlang - 如何使用 PEM key 文件在 Erlang 中通过 SSH 连接

javascript - 类型错误:无法设置未定义的属性 'onkeydown'

amazon-s3 - S3 如何在上传时分配时间戳?

c - 在 C 中实现 hmac sha1

perl - utf8 "\xFF"未映射到 tokenizer.perl 第 44 行

c# - 页脚按钮的 Gridview colspan

regex - 正则表达式 : How to find dashes between words

version-control - P4 货架 : What is actually saved?

apache - 将模块加载到 Apache