如何以编程方式卸载缓存的Wix Burn程序

如何以编程方式卸载缓存的Wix Burn程序,wix,Wix,我已经创建了一个WixBurn应用程序,我正在安装两个MSI。效果很好 MSI文件安装正确 Wix Burn应用程序向ARP注册。 MSI文件不向ARP注册 我可以做重大升级 我可以使用Wix Burn应用程序的本地副本手动安装和卸载 我可以使用/x以编程方式执行Wix Burn应用程序进行卸载 问题是: 我知道使用Wix Burn应用程序卸载的两种方法: 点击ARP中的卸载按钮需要用户参与 启动安装该产品的Wix Burn应用程序的副本 我在Wix Burn日志中看到,Windows缓存我的W

我已经创建了一个WixBurn应用程序,我正在安装两个MSI。效果很好

MSI文件安装正确 Wix Burn应用程序向ARP注册。 MSI文件不向ARP注册 我可以做重大升级 我可以使用Wix Burn应用程序的本地副本手动安装和卸载 我可以使用/x以编程方式执行Wix Burn应用程序进行卸载 问题是:

我知道使用Wix Burn应用程序卸载的两种方法:

点击ARP中的卸载按钮需要用户参与 启动安装该产品的Wix Burn应用程序的副本 我在Wix Burn日志中看到,Windows缓存我的Wix Burn应用程序安装的方式与MSIEXEC缓存MSI文件的方式大致相同。有没有办法通过编程要求Windows或MSI使用Wix Burn应用程序的缓存版本进行卸载

一种可能性:


大概我可以使用MsiGetProductInfo获取缓存Wix Burn应用程序的路径。然而,要做到这一点,我需要我的应用程序的产品代码。但是,产品代码不是Wix中元素的属性,因此我不知道如何获取Burn软件包的产品代码。

您可以通过迭代卸载注册表项来解决此问题。这个过程是:

打开HKEY\U LOCAL\U MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall。 遍历子键,搜索发布者和DisplayName与您的产品匹配的条目。 如果找到条目,请读取quietInstallString的值,并将其作为命令运行。对于WIX burn安装程序,其格式通常为C:\ProgramData\Package Cache\{GUID}\SetupProgram.exe/uninstall/quiet。
如果您使用的是64位操作系统,您还需要搜索HKEY\U LOCAL\U MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall。

我认为这应该可以。只是几个进一步的链接:和。