我创建了一个Wix Burn应用程序,我正在安装两个MSI&。效果很好。
问题:
我知道使用Wix Burn应用程序卸载的两种方法:
我在Wix Burn日志中看到,Windows缓存我的Wix Burn应用安装的方式与MSIEXEC缓存MSI文件的方式大致相同。有没有办法以编程方式要求Windows或MSI使用Wix Burn应用程序的缓存版本进行卸载?
可能性:
据推测,我可以使用MsiGetProductInfo()来获取缓存的Wix Burn应用程序的路径。但是,要做到这一点,我需要我的应用程序的产品代码。但是,产品代码不是Wix中元素的属性,因此我没有看到如何获取Burn软件包的产品代码。
答案 0 :(得分:0)
您可以通过遍历Uninstall
注册表项来解决此问题。这个过程是:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
。Publisher
和DisplayName
与您的商品匹配的条目。QuietUninstallString
的值并将其作为命令运行。对于WIX刻录安装程序,通常采用C:\ProgramData\Package Cache\{GUID}\SetupProgram.exe /uninstall /quiet
。如果您使用的是64位操作系统,则还需要搜索HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall
。