gpt4 book ai didi

wix - 跳过卸载时的自定义操作 (WiX)

转载 作者:行者123 更新时间:2023-12-04 20:28:28 28 4
gpt4 key购买 nike

我正在为现有产品编写 MSI。在以前的版本中有一个自定义操作,它不仅限于在安装时运行,现在在使用 MajorUpgrade 卸载时失败。

新安装程序中是否有任何方法可以告诉 WiX 在卸载时跳过该特定自定义操作?

最佳答案

是的,您可以从新安装程序自动执行此操作。

解决方案:

1)您需要修复构建您当前版本安装程序的项目中的问题并构建 MSI 再次来自该项目。在这种情况下,您只需要 MSI 数据库,通常为几 KB,not the entire setup package (即包含所有安装文件等的 CAB 文件...)

2) 在新安装程序中,您需要一个在 RemoveExistingProducts 标准操作之前运行的自定义操作,该操作将重新缓存机器上先前版本的 MSI。您的自定义操作必须执行以下命令:

msiexec.exe /fv "< path_to_MSI >"



您尝试重新缓存的 MSI 是您在第 1 步中构建的新 MSI。您需要将此 MSI 作为资源包含在新版本安装程序(以及 future 版本,以防某些用户跳过此版本)中,并将提取此 MSI 文件的完整路径作为参数传递给您的自定义操作。

基本上,您要做的是使用正确的 MSI 自动执行重新缓存旧安装的步骤(您在自定义操作上设置了正确的条件)。现在,当 RemoveExistingProducts 标准操作将执行时,Windows Installer 将使用新缓存的 MSI 触发旧版本的卸载,该 MSI 在您的自定义操作上设置了正确的条件,并成功卸载。

关于wix - 跳过卸载时的自定义操作 (WiX),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44764617/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com