刻录如何检测到它需要自行卸载?

Posted

技术标签:

【中文标题】刻录如何检测到它需要自行卸载?【英文标题】:How does burn detect that it needs to uninstall itself? 【发布时间】:2014-10-29 13:29:31 【问题描述】:

Burn,WiX 引导程序应用程序在运行时会检查以确定它是否需要卸载。假设我有以下捆绑包Chain

<ExePackage Permanent="yes" ...
<MsiPackage Visible="yes" DisplayInternalUI="yes" ...

burn 如何确定是否应显示一个对话框以自行卸载?它如何知道引导程序本身是否已安装?在我运行引导程序并安装了包之后,如果我从程序和功能中卸载 MsiPackage,然后再次运行我的引导程序,它将显示一个卸载选项......尽管所有非永久包都已被删除。显然,它一定留下了一些东西来检测在某个时候只安装了引导程序。

【问题讨论】:

【参考方案1】:

知道了,它会检查HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\The GUID for this Particular InstallationHKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\The GUID for this Particular Installation 中的注册表项。

要了解The GUID for this Particular Installation 是什么用于您的引导程序,请查找属性为BundleUpgradeCode (REG_MULTI_SZ) 的元素,该属性等于您的包的升级代码。

【讨论】:

另外值得注意的是......“烧录”引导程序通过检查此路径是否存在密钥来检测是否重新启动:HKLM\SOFTWARE\("Wow6432Node\" if you have an x86 installer on an x64 machine)Microsoft\Windows\CurrentVersion\Uninstall\The GUID for this Particular Installation.RebootRequired

以上是关于刻录如何检测到它需要自行卸载?的主要内容,如果未能解决你的问题,请参考以下文章

在磁盘中创建一个文件夹并使用 IMAPI 2 刻录到它

考虑到它的参数,如何检测bash脚本是不是已经在运行[重复]

如何在操作系统检测到它之前或之后检测到 Ctrl-Alt-Del?

如何检测用户卸载的iOS App?我需要推送严肃的通知。我不想失去它

Android 应用程序自行卸载

如何获得 Wix Burn 捆绑包以阻止升级