如何解决WiX捆绑包会在ARP中为同一版本创建多个条目
我创建了一个WiX捆绑包,该捆绑包仅安装了VC redist,而不是MSI。
如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">
<Bundle Name="Thrust" Version="1.1.0.0" Manufacturer="Maker" UpgradeCode="e356a490-31a8-4c0b-9aeb-82cbf3350082">
<BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense" />
<Chain>
<!-- Install required VCRedist -->
<PackageGroupRef Id="VCRedist"/>
<!-- Install Thrust Msi -->
<MsiPackage Id="ThrustInstaller"
Cache="yes" Compressed="yes" Visible="yes"
displayInternalUI="no"
SourceFile="..\ThrustInstaller\bin\Release\ThrustInstaller.msi">
</MsiPackage>
</Chain>
</Bundle>
<Fragment>
<util:RegistrySearch
Variable="IsVCInstalled"
Root="HKLM"
Key="SOFTWARE\WOW6432Node\Microsoft\VisualStudio\14.0\VC\Runtimes\X64"
Value="Installed"
Win64="yes"
/>
<util:RegistrySearch
Variable="VCVersionMajor"
Root="HKLM"
Key="SOFTWARE\WOW6432Node\Microsoft\VisualStudio\14.0\VC\Runtimes\X64"
Value="Major"
Win64="yes"
/>
<util:RegistrySearch
Variable="VCVersionMinor"
Root="HKLM"
Key="SOFTWARE\WOW6432Node\Microsoft\VisualStudio\14.0\VC\Runtimes\X64"
Value="Minor"
Win64="yes"
/>
<util:RegistrySearch
Variable="VCVersionBld"
Root="HKLM"
Key="SOFTWARE\WOW6432Node\Microsoft\VisualStudio\14.0\VC\Runtimes\X64"
Value="Bld"
Win64="yes"
/>
<WixVariable Id="WixMbaPrereqLicenseUrl" Value="" />
<WixVariable Id="WixMbaPrereqPackageId" Value="VCRedist" />
<PackageGroup Id="VCRedist">
<ExePackage Id="VCRedist"
SourceFile="..\..\external\VC_redist.x64.exe"
InstallCommand="/q /norestart"
Cache="no"
PerMachine="yes"
Permanent="yes"
Vital="yes"
Compressed="yes"
DetectCondition="IsVCInstalled AND VCVersionMajor >= 14 AND VCVersionMinor >= 27 AND VCVersionBld >= 29016"
InstallCondition="1"/>
</PackageGroup>
</Fragment>
</Wix>
VC redist安装按预期工作。
但是,当安装具有相同版本但MSI内部版本不同的捆绑软件时,我可以看到正在安装MSI,但是在ARP中我得到了捆绑软件的重复条目(其中只有1个条目MSI符合预期)。
在MSI中,我允许相同版本的升级:
<MajorUpgrade AllowDowngrades="no" AllowSameVersionUpgrades="yes" Schedule="afterInstallInitialize" DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
我猜测ARP中的两个条目的原因是捆绑包不允许相同版本的升级?
我对how-to-do-major-upgrades-when-using-burn-wix-3-6中的答案不满意,它建议升级捆绑软件版本。如果MSI版本不同于已安装的MSI版本,但捆绑版本相同,则无法实现某种行为吗?
谢谢。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。