已安装 Quicktime 时正在安装

Quicktime is installing when it is already installed

我有一个以 QuickTime 作为先决条件的 WIX 安装程序包。我试图检查注册表项以确定它是否已安装,但它总是返回错误。

日志显示...

[08B4:040C][2015-07-06T10:50:14]i000:未找到注册表项。键 = 'HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Media\QuickTime' [08B4:040C][2015-07-06T10:50:14]i000:将数值变量 'QuickTimeFound64' 设置为值 0 [08B4:040C][2015-07-06T10:50:14]i000:找不到注册表项。键 = 'HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Media\QuickTime'

注册表是...

密码是...

<util:RegistrySearch Root="HKLM" Key="HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Media\QuickTime" Result="exists" Variable="QuickTimeFound64" Win64="yes" />
<util:RegistrySearch Root="HKLM" Key="HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Media\QuickTime" Result="exists" Variable="QuickTimeFound32" Win64="no" />

    <Chain>
        <PackageGroupRef Id="PackageGroup_NetFx35Redist"/>
        <PackageGroupRef Id="PackageGroup_NetFx40Redist"/>
        <PackageGroupRef Id="PackageGroup_SQLServer2012"/>

        <ExePackage Id="Package_QuickTime" Cache="no" Compressed="$(var.Compressed)" 
                      Description="Apple QuickTime 7" DownloadUrl="$(var.GuruDownloadRepo)/{2}" 
                      SourceFile="..\Prerequisites\QuickTimeInstaller.exe" 
                      Name="Prerequisites\QuickTimeInstaller.exe" 
                      Permanent="yes" DisplayName="Apple QuickTime 7" 
                      DetectCondition="QuickTimeFound64 AND QuickTimeFound32" />

我试过在 64 位路径中包含 "Wow6432Node",但没有任何区别。

谁能告诉我为什么这两个搜索结果都是错误的?

使用

SOFTWARE\Clients\Media\QuickTime

而不是

HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Media\QuickTime

因为 HKEY_LOCAL_MACHINE 是在 Root 属性中指定的。