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 (将#修改为@)