已安装 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
属性中指定的。
我有一个以 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
属性中指定的。