生成 ICE
如果无法在 ICE 参考中列出的现有 ICE 自定义操作中找到所需的内部一致性计算器,则需要准备自己的 ICE 来验证程序包。
创作 ICE 自定义操作时,应执行以下操作:
- ICE 仅基于所示表中列出的类型的自定义操作。
- 调用 MsiProcessMessage 并发布 INSTALLMESSAGE_USER 类型的消息。 创作 ICE 消息时,请遵循 ICE 消息指南中的消息格式。
- 编写 ICE,以便捕获任何 API 错误,并始终返回 ERROR_SUCCESS。 若要在 ICE 失败后运行后续自定义操作,则必须执行此操作。
ICE 自定义操作仅限于以下自定义操作类型。
自定义操作类型 | 说明 |
---|---|
自定义操作类型 1 | 二进制流中的 DLL |
自定义操作类型 2 | 二进制流中的 EXE |
自定义操作类型 5 | 二进制流中的 JScript |
自定义操作类型 6 | 二进制流中的 VBScript |
自定义操作类型 37 | 作为字符串的 JScript 代码 |
自定义操作类型 38 | 作为字符串的 VBScript 代码 |
创作 ICE 自定义操作时,请勿执行以下操作:
- 不要假定 ICE 接收的引擎的句柄是安装程序数据库的安装实例。 如果不是安装实例,则未定义某些属性,不会解析源目录和目标目录,并且未定义当前功能状态。
- 不要依赖于先前执行或未执行的任何安装程序操作、自定义操作或其他 ICE。 由于以前的 ICE 可能在任何表中创建了临时列,因此作者应尽可能按名称引用列。 ICE 应在退出之前清理任何临时列或表。
- 不要假定作者有权访问数据库的源目录的图像。
- 不要假定对数据库所做的更改不会保留。
相关主题