wixbootstrapperwix3.11

wix bootstrapper not allowing feature change


I have a simple wix burn bootstrapper that installs an msi. The msi has two features, one of which can be enabled/disabled.

If I set Visible="no" and DisplayInternalUI="yes" in the MsiPackage element then as expected the MSI UI displays, and only the bootstrapper bundle name shows in Add/Remove Programs.

However, if I click the "change" button in Add/Remove Programs, then the bootstrapper fires up and only allows a Repair or Uninstall.

How do I change a feature if the bundle never runs the msi UI again?

I can set Visible="yes" and then have two entries in Add/Remove Programs - which does work but looks weird.

What is the "normal" way of handling this?

For what it's worth, here's a simplified version of my bundle.wxs.

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
xmlns:util="http://schemas.microsoft.com/wix/UtilExtension"
xmlns:netfx="http://schemas.microsoft.com/wix/NetFxExtension"
xmlns:bal="http://schemas.microsoft.com/wix/BalExtension"
xmlns:dep="http://schemas.microsoft.com/wix/DependencyExtension">

    <Bundle Name="$(var.BundleName)" Version="$(var.Version)" 
            Manufacturer="$(var.Manufacturer)"
            dep:ProviderKey="$(var.MyBundleProviderKey)"
            DisableModify="no"
            DisableRepair="no"
            DisableRemove="no"
        
            IconSourceFile="$(var.IconFileIco)"
            UpgradeCode="$(var.BundleUpgradeCode)"
            Condition="(VersionNT >= v6.2.0)"    
            >


        <BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.HyperlinkLicense" >
            <bal:WixStandardBootstrapperApplication
                LicenseFile="License.rtf"
                LogoFile="IconFileIco" 
                SuppressOptionsUI="yes"
                SuppressRepair="no"
                ShowVersion="no"
                ShowFilesInUse="yes"
                 LicenseUrl="https://some.html"
                />
        </BootstrapperApplicationRef>
    
        <Chain>
            <PackageGroupRef Id="some_other_Installer" />

            <MsiPackage
                Compressed="yes"
                DisplayInternalUI="yes"
                Permanent="no"
                Visible="yes"
                Vital="yes"
                SourceFile="my.msi"
                >
            </MsiPackage>
        </Chain>
    </Bundle>

</Wix>

Solution

  • WixStdBA v3 doesn't support modify mode or showing MSI UI after the initial install. Features require a custom BA. You can break your MSI into two MSIs, one feature each.