Wix:修补时运行条件自定义操作(非完整安装)

Posted

技术标签:

【中文标题】Wix:修补时运行条件自定义操作(非完整安装)【英文标题】:Wix: Run Conditional Custom Action when patching (not full install) 【发布时间】:2017-05-17 20:07:49 【问题描述】:

我有一个自定义操作,我只想在我们应用或回滚 更新(不是完整安装 (msi),只是一个补丁 (msp))而不是在我们安装或卸载时运行.

我尝试了以下代码,但自定义操作仅在我应用时调用,而不是在回滚时调用。

<Custom Action="CheckValidation" Sequence="3710">PATCH OR MsiPatchRemovalList</Custom>

根据文档,“PATCH”和“MsiPatchRemovalList”属性应包含 guid/s,具体取决于操作。

我在这里错过了什么? 以下情况的可能值是什么

![1]:https://i.stack.imgur.com/P2i35.png

                    |Full Install   |Full Uninstall |Apply Patch    |Rollback Patch
Installed               
REMOVE              
PATCH               
MsiPatchRemovalList             

【问题讨论】:

How to add a WiX custom action that happens only on uninstall (via MSI)?的可能重复 这是不同的。我问的是我们何时应用补丁而不是完整安装 【参考方案1】:

我想通了... 当您回滚补丁时,会调用上一个补丁的自定义操作,而不是您要回滚的补丁。

案例:基础构建 + 更新 1 + 更新 2 现在,如果您回滚到更新 1,那么将调用更新 1 的自定义操作,而不是更新 2。

【讨论】:

以上是关于Wix:修补时运行条件自定义操作(非完整安装)的主要内容,如果未能解决你的问题,请参考以下文章

使用组策略部署时 WIX MSI 自定义操作未运行

Wix 自定义卸载操作 - 如何在 msi 删除文件之前运行

Wix - 在安装/升级期间,自定义操作的条件在不应该的情况下解析为False

如何关闭正在运行的 wix 安装程序?

wix 自定义操作,管理员组

WiX:使用msiexec / i Setup.msi / qn时不运行自定义操作(没有UI的安静模式安装)