同步和异步自定义操作
Windows Installer 将自定义操作作为独立于主安装的线程进行处理。 在同步执行自定义操作期间,安装程序会等待自定义操作的线程完成,然后再继续主安装。 在异步执行期间,安装程序会在当前安装继续时同时运行自定义操作。 因此,自定义操作的作者必须知道任何可能在函数调用之间对安装数据库进行更改的异步线程。
具体而言,应在异步自定义操作中避免对 MsiGetTargetPath 和 MsiSetTargetPath 的 调用。 而是使用 MsiGetProperty 获取目标路径。 应在任何类型的自定义操作中避免批量数据库操作,例如导入、导出和转换操作。
可以在 CustomAction 表 的 Type 字段中设置选项标志,以指定主线程和自定义操作线程以同步或异步方式运行。 请参阅 自定义操作返回处理选项。
安装程序只能将 回滚自定义操作 和 并发安装 操作作为同步自定义操作执行。