Wix Util Extension ProductSearch 无法正常工作
Wix Util Extension ProductSearch Not Functioning Not working correctly
我目前在 windows 10.
上使用 Wix 3.10
我正在尝试查找 VC++ 2005 runtime x64 (v8.0.61000) 是否由产品代码安装。它肯定会显示在添加删除程序中。 ProductCode 肯定存在于卸载注册表部分和 Win32_Product 中。 powershell 中的 Get-Package 也显示了它:
Get-Package | Where Name -Like "*2005*" | select -First 1 | fl
PropertyOfSoftwareIdentity : PropertyOfSoftwareIdentity
FastPackageReference : {ad8a2fa1-06e7-4b0d-927d-6e54b3d31028}
ProviderName : msi
Source :
Status : Installed
SearchKey :
FullPath :
PackageFilename : ?
FromTrustedSource : False
Summary :
SwidTags : {Microsoft Visual C++ 2005 Redistributable (x64)}
CanonicalId : msi:Microsoft Visual C++ 2005 Redistributable (x64)/8.0.61000
Metadata : {ProductCode}
SwidTagText : <?xml version="1.0" encoding="utf-16" standalone="yes"?>
<SoftwareIdentity
name="Microsoft Visual C++ 2005 Redistributable (x64)"
version="8.0.61000"
versionScheme="multipartnumeric"
tagId="ad8a2fa1-06e7-4b0d-927d-6e54b3d31028"
xmlns="http://standards.iso.org/iso/19770/-2/2015/schema.xsd">
<Meta
ProductCode="{ad8a2fa1-06e7-4b0d-927d-6e54b3d31028}" />
</SoftwareIdentity>
Dependencies : {}
IsCorpus :
Name : Microsoft Visual C++ 2005 Redistributable (x64)
Version : 8.0.61000
VersionScheme : multipartnumeric
TagVersion :
TagId : ad8a2fa1-06e7-4b0d-927d-6e54b3d31028
IsPatch :
IsSupplemental :
AppliesToMedia :
Meta : {{ProductCode}}
Links : {}
Entities : {}
Payload :
Evidence :
Culture :
Attributes : {name,version,versionScheme,tagId}
但是当我创建一个启动条件,并使用util:ProductSearch它returns空白,导致条件触发并退出。
<Fragment>
<Property Id="LC_MSVCPP_8_0_X64_LATEST_REQUIRED" Value="LaunchCondition" />
<util:ProductSearch Id="MSVC2005.v8.0.61000.x64" Variable="MSVCPP_8_0_61000_X64_DETECTED" ProductCode="{AD8A2FA1-06E7-4B0D-927D-6E54B3D31028}" Result="version" />
<Condition Message="VC++ 2005 x64 runtime not found!">MSVCPP_8_0_61000_X64_DETECTED</Condition>
</Fragment>
我也试过重启。
我应该注意,绝对可以通过 upgradeCode 进行搜索。但是后来又要做版本比较,这里真正的问题是有没有bug?
有什么想法吗?
非常感谢!
util:ProductSearch
在捆绑包中工作,而不是 MSI 包,因此不能在启动条件下使用。
我目前在 windows 10.
上使用 Wix 3.10我正在尝试查找 VC++ 2005 runtime x64 (v8.0.61000) 是否由产品代码安装。它肯定会显示在添加删除程序中。 ProductCode 肯定存在于卸载注册表部分和 Win32_Product 中。 powershell 中的 Get-Package 也显示了它:
Get-Package | Where Name -Like "*2005*" | select -First 1 | fl
PropertyOfSoftwareIdentity : PropertyOfSoftwareIdentity
FastPackageReference : {ad8a2fa1-06e7-4b0d-927d-6e54b3d31028}
ProviderName : msi
Source :
Status : Installed
SearchKey :
FullPath :
PackageFilename : ?
FromTrustedSource : False
Summary :
SwidTags : {Microsoft Visual C++ 2005 Redistributable (x64)}
CanonicalId : msi:Microsoft Visual C++ 2005 Redistributable (x64)/8.0.61000
Metadata : {ProductCode}
SwidTagText : <?xml version="1.0" encoding="utf-16" standalone="yes"?>
<SoftwareIdentity
name="Microsoft Visual C++ 2005 Redistributable (x64)"
version="8.0.61000"
versionScheme="multipartnumeric"
tagId="ad8a2fa1-06e7-4b0d-927d-6e54b3d31028"
xmlns="http://standards.iso.org/iso/19770/-2/2015/schema.xsd">
<Meta
ProductCode="{ad8a2fa1-06e7-4b0d-927d-6e54b3d31028}" />
</SoftwareIdentity>
Dependencies : {}
IsCorpus :
Name : Microsoft Visual C++ 2005 Redistributable (x64)
Version : 8.0.61000
VersionScheme : multipartnumeric
TagVersion :
TagId : ad8a2fa1-06e7-4b0d-927d-6e54b3d31028
IsPatch :
IsSupplemental :
AppliesToMedia :
Meta : {{ProductCode}}
Links : {}
Entities : {}
Payload :
Evidence :
Culture :
Attributes : {name,version,versionScheme,tagId}
但是当我创建一个启动条件,并使用util:ProductSearch它returns空白,导致条件触发并退出。
<Fragment>
<Property Id="LC_MSVCPP_8_0_X64_LATEST_REQUIRED" Value="LaunchCondition" />
<util:ProductSearch Id="MSVC2005.v8.0.61000.x64" Variable="MSVCPP_8_0_61000_X64_DETECTED" ProductCode="{AD8A2FA1-06E7-4B0D-927D-6E54B3D31028}" Result="version" />
<Condition Message="VC++ 2005 x64 runtime not found!">MSVCPP_8_0_61000_X64_DETECTED</Condition>
</Fragment>
我也试过重启。
我应该注意,绝对可以通过 upgradeCode 进行搜索。但是后来又要做版本比较,这里真正的问题是有没有bug?
有什么想法吗?
非常感谢!
util:ProductSearch
在捆绑包中工作,而不是 MSI 包,因此不能在启动条件下使用。