更具体地说,我想测试是否在机器上安装了Oracle ODP.Net.我想通过测试HKLM\SOFTWARE\ORACLE\ODP.NET注册表项来完成此操作.
ODP.Net使用的实际值存储在HKLM\SOFTWARE\ORACLE\ODP.NET\2.111.6.20中,但是我假设这个较低级别的密钥名称将随着Oracle发布更新而更改.
我尝试了下面的失败,可能是因为(默认)值不存在或可能因为它是null(我不确定它在注册表中的确切表示).
<Property Id="ORACLE_ODPNET">
<RegistrySearch Id="ODPNET_RegKey" Type="raw" Root="HKLM" Key="SOFTWARE\ORACLE\ODP.NET" Name="(Default)"/>
</Property>
<Condition Message="This setup requires ODP.Net to be installed.">
Installed OR ORACLE_ODPNET
</Condition>
Run Code Online (Sandbox Code Playgroud)
所以以下任何一个对我都有帮助: