如何使用ARPEntry检测并卸载ExePackage?

问题描述 投票:0回答:1

我使用 WiX4 通过 Burn 将多个安装程序捆绑在一起。其中一个安装程序是使用 Inno Setup 创建的,因此该软件包的卸载程序会安装到系统中。我无法使用典型的刻录工具进行卸载,因为它运行安装程序。 ARPentry Element 似乎就是为此而设计的。

但是,我似乎无法让它发挥作用。我应该为所需的 Id 属性分配什么值?这里的“ARP条目的id”指的是什么?由于 DetectCondition 和 UninstallArguments 属性都是不允许的,我假设这个 Id 是检测机制的一部分,但我不明白它在寻找什么。

我尝试了“程序和功能”面板下显示的显示名称,以及与我的安装程序对应的

HKLM\Software\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall
注册表下的键,但该软件包未卸载,并且我在日志中看到以下内容:

[179C:17A0][2023-09-27T12:01:16]i101: Detected package: PreReq.Setup.exe, state: Absent, cached: Yes, install registration state: Absent, cache registration state: Present
...
[179C:17A0][2023-09-27T12:01:18]i201: Planned package: PreReq.Setup.exe, state: Absent, default requested: Absent, ba requested: Absent, execute: None, rollback: None, default cache strategy: Keep, ba requested strategy: Keep, cache: No, uncache: Yes, dependency: None, expected install registration state: Absent, expected cache registration state: Absent
wix burn wix4
1个回答
0
投票

经过进一步调试,发现该Id确实是卸载注册表下的键。我的错误是错误地设置了

Win64
属性,因此重定向开始并查找错误的位置。

© www.soinside.com 2019 - 2024. All rights reserved.