0

I'm migrating an installer from InstallShield to WiX v4 with Bundle and having issues with minor upgrades. Here's my scenario:

Current Versioning Scheme:

  • Format: x.y.z.a where:

    • x = major version (static for minor upgrades)

    • y = minor version

    • z = usually 0

    • a = build version

  • Minor upgrades occur when any number except the major version changes

  • Major version changes result in a separate installation with different upgrade/product codes

What I've Done:

  1. Decompiled InstallShield MSI to preserve GUIDs and components

  2. Created WiX MSI project with proper versioning

  3. Created Bundle project to package MSI with prerequisites

The Issue:

The minor upgrade functionality isn't working as expected. Here's my configuration:

Product.wxs (msi project)

<Package
Codepage="1252"
Name="$(var.ProductName)" 
Language="1033" 
Version="$(var.ProductVersion)"
Manufacturer="$(var.ProductManufacturer)" 
UpgradeCode="$(var.UpgradeCode)"
ProductCode="$(var.ProductCode)"
InstallerVersion="200">

<Upgrade Id="$(var.UpgradeCode)">
    <UpgradeVersion Minimum="$(var.InitialVersion)"
                    Maximum="$(var.ProductVersion)"
                    Property="PREVIOUSVERSIONSINSTALLED"
                    IncludeMinimum="yes"
                    IncludeMaximum="yes" />
</Upgrade>

<InstallExecuteSequence>
    <RemoveExistingProducts After="InstallInitialize"/>
</InstallExecuteSequence>
<!-- ... rest of package configuration ... -->

Bundle.wxs (bootstrapper project)

<Bundle Name="$(var.ProductName)"
    Version="$(var.ProductVersion)"
    Manufacturer="$(var.Manufacturer)"
    UpgradeCode="{01F40945-4195-4FBE-886C-2F1137F21D6B}">

<RelatedBundle Action="Upgrade"
               Id="{01F40945-4195-4FBE-886C-2F1137F21D6B}"/>
<!-- ... rest of bundle configuration ... -->

I'm testing with an initial version of x.y.0.0 trying to upgrade to a version with the same major and minor version but an incremented build version.

My Suspicion:

The issue might be related to the Bundle's UpgradeCode, which is a new addition compared to the InstallShield setup.

Has anyone successfully implemented minor upgrades with WiX v4 Bundles? What am I missing in my configuration?

4
  • 1
    Based on how you described your version differences you said the build number was in the 4th spot and 0 was in the 3rd spot. I seem to remember that Windows installer only views the first 3 numbers as part of the upgrade. You may be able to test if this is the issue by putting your build number in the third spot. Commented Feb 8 at 19:38
  • The Bundle code is used to upgrade Bundles, it has no impact on the contained packages. Look in the Bundle's log file. It will have detailed information about Burn's plans for each package. You'll need to add that log information to your question to be helpful. Currently, you're hiding too many details to provide an answer. Commented Feb 9 at 4:49
  • PS: Burn can minor upgrade MSIs that change the 4th version. You, of course, can only MAJOR upgrade changes to the first 3 parts of the version (because the Windows Installer said so). Commented Feb 9 at 4:51
  • @RobMensching I think I have given up on trying to do minor upgrade. I think major upgrade is the way to go. I tested it out with a simple MajorUpgrade element and it seems to be working fine. Do you have any recommendation or preferred way on how to properly schedule and implement MajorUpgrade? And also, since I've disabled the msi UI when configuring the bundle, I don't get a dialog pop up that the installer found a related product and that it'll attempt to upgrade (like we had in InstallShield). Is there any way to configure that? Commented Feb 10 at 6:04

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.