我是 Wix 的新手,这就是我正在尝试做的事情。如果我检测到已安装相同的应用程序,我需要抛出一条消息。我想使用它的注册表项来找到它
这是我写的代码
<Property Id="INSTALLEDHREC" Secure="yes">
<RegistrySearch Id="HRECVERSION" Root="HKLM" Key="SOFTWARE\COMPANY\PRODUCT" Name="Version" Type="raw" Win64="yes" />
</Property>
<Condition Message="Please uninstall first"><![CDATA[INSTALLEDHREC = "1.11.0"]]></Condition>
安装程序日志显示
AppSearch: Property: INSTALLEDHREC, Signature: HRECVERSION
MSI (c) (58:18) [14:31:44:467]: Note: 1: 2262 2: Signature 3: -2147287038
MSI (c) (58:18) [14:31:44:467]: PROPERTY CHANGE: Adding INSTALLEDHREC property. Its value is '1.11.0'.
但我没有看到弹出消息。
我尝试了不同的条件
<![CDATA[Installed AND INSTALLEDHREC]]>
pop-up message comes always (already installed / not installed)
<![CDATA[Installed AND INSTALLEDHREC << "1"]]>
pop-up message comes always (already installed / not installed)
<![CDATA[Installed OR INSTALLEDHREC]]>
pop-up message never comes (already installed / not installed)
<![CDATA[Installed OR INSTALLEDHREC << "1"]]>
pop-up message never comes (already installed / not installed)
在上述所有情况下,安装程序日志显示相同的行。我有什么遗漏的吗..?
<![CDATA[Not INSTALLEDHREC]]>
以上解决了我的问题。我遇到这个问题是因为基本上我误解了https://wixtoolset.org/docs/v3/howtos/redistributables_and_install_checks/block_install_on_os/
中提到的文档