wix - 根据模式执行自定义操作 - WIX

标签 wix windows-installer custom-action

我们已经为我们的应用程序创建了 WIX 安装程序。我们面临的问题是:
我们已经定义了两个不同的自定义操作(比如 ActionForInstall 和 ActionForUninstall),我们希望在以下情况下执行这些操作:
ActionForInstall :应该在安装、产品升级、维护模式时运行(用于修复和修改)
ActionForUninstall :应仅在卸载时运行。

但是我们无法设置适当的条件。您可以引用代码:

<Custom Action=ActionForInstall After='InstallFinalize' > 
    (NOT Installed) OR (Installed AND ((MaintenanceMode = "Modify") OR (MaintenanceMode = "Repair")) AND (NOT (MaintenanceMode = "Remove"))) OR  ((UPGRADINGPRODUCTCODE) AND NOT(REMOVE ~= "ALL"))
</Custom>
<Custom Action=ActionForUninstall Before='InstallFinalize'>
    Installed AND NOT UPGRADINGPRODUCTCODE
</Custom>

请让我们知道我们做错了什么。上面的代码甚至在卸载时调用 InstallFinalize。

最佳答案

您可以尝试以下条件:

安装操作:

REMOVE <> "ALL"

卸载操作
REMOVE = "ALL"

关于wix - 根据模式执行自定义操作 - WIX,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5659364/

相关文章:

c# - RegistryValue 在进行 Wix 次要升级后消失

c# - 调试(单步执行)VS 安装项目,你是怎么做到的?

c# - Process.Start() 和用户模拟

registry - 如何正确地将文件关联添加到 Windows 注册表?

delphi - 如何编写自定义操作 DLL 以在 MSI 中使用?

c# - wix - 安装前删除旧的程序文件夹

wix - 如何使用 WiX 记录自定义操作?

installation - 如何从 MSI 内部升级 Windows Installer(使用 WiX)?是否可以?

bitmap - WiX 无法正确渲染图像

installation - 避免使用 WiX 安装程序中的条件进入下一个对话框