Wix 如何根据升级代码检测是否安装了应用程序
我正在安装几个产品,但是因为它们是在日常构建中自动构建的,所以它们有各种各样的guid。他们只是有相同的升级代码 所以我的问题是: 是否可以仅通过升级代码了解产品是否已安装(无需使用自己的自定义操作) 我试着:Wix 如何根据升级代码检测是否安装了应用程序,wix,wix3.7,Wix,Wix3.7,我正在安装几个产品,但是因为它们是在日常构建中自动构建的,所以它们有各种各样的guid。他们只是有相同的升级代码 所以我的问题是: 是否可以仅通过升级代码了解产品是否已安装(无需使用自己的自定义操作) 我试着: <Property Id="WF_INSTALLED" Value="NOT INSTALLED"> <ProductSearch Minimum="0" UpgradeCode="{XXXXXXXX-XXXX-XXXX-XXXX-8660911
<Property Id="WF_INSTALLED" Value="NOT INSTALLED">
<ProductSearch Minimum="0" UpgradeCode="{XXXXXXXX-XXXX-XXXX-XXXX-8660911C6596}"/>
</Property>
其中XXXXXXX转换为升级代码,但此键下没有值,因此我无法检查其存在性:(
任何帮助都将不胜感激
编辑:我正在尝试查找是否安装了其他产品,而不是我当前安装的产品。您可以使用
升级
元素执行此操作。请参阅此问题:
如果只想检测应用程序是否已安装,请使用OnlyDetect
属性(有一个使用示例)
如果您确实在尝试升级您的产品,该官员会介绍最简单的方法。请参阅我的相关编辑……我知道我可以做您发布的事情,但这不是我想要的……您也可以使用
升级
元素检测其他产品。您只需要使用升级代码即可另一个产品,而不是您自己的。只需确保您设置了OnlyDetect
,这样它就不会卸载另一个产品。您甚至可以使用Minimum
和Maximum
version属性检查不同的版本。看起来您的解决方案工作正常,但当我要卸载应用程序时,它无法检测到如果安装了应用程序…嗯,你知道卸载、修复或更改时是否也可以检测到它吗?我不确定卸载时如何检测,因为FindRelatedProducts操作不会在卸载顺序中运行。也许你可以在安装期间将应用程序的状态存储在注册表项或其他内容中,然后在un安装。如果不了解您的要求,很难说。
Root='HKLM' Key='SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UpgradeCodes\XXXXXXX'