Wix Installer回滚时如何获取触发回滚的原始错误与Custom Action错误码
关于获取触发回滚的首个Custom Action错误码的解答
无法直接通过WiX内置的预定义变量获取到最先触发回滚流程的Custom Action错误码。WiX官方预定义的内置变量仅覆盖编译期参数、基础安装路径、产品版本、系统环境类的通用属性,没有专门暴露该错误码的预置变量。
你可以通过自定义属性的方案实现需求,具体操作步骤如下:
- 提前在WiX项目中声明一个全大写的公共安全属性,用于存储首个失败自定义动作的错误码,示例代码如下:
全大写命名是为了保证属性为公共属性,可跨不同执行序列传递;<Property Id="FIRST_FAILED_CA_ERRORCODE" Secure="yes" />Secure="yes"配置是为了保证属性值在回滚阶段依然可以被正常读取。 - 在所有可能触发回滚的Custom Action实现逻辑中,执行失败返回错误码前,先判断
FIRST_FAILED_CA_ERRORCODE属性是否为空,仅为空时将当前的错误码赋值给该属性,避免后续失败的自定义动作覆盖第一个错误码。 - 在回滚执行序列的最开头添加一个用于输出/记录错误码的自定义动作,直接读取
FIRST_FAILED_CA_ERRORCODE属性的值,即可得到最先触发回滚流程的Custom Action错误码。
内容的提问来源于stack exchange,提问作者Theodor Ionut Stanbeca
相关产品推荐
相关产品推荐

