Doing Major Upgrade in Wix creates 2 entries in Add/Remove Programs
I've followed the official Major Upgrade guide and I seem to be missing something. Here is my MCVE:
<?xml version="1.0" encoding="UTF-8"?> <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> <Product Id="*" Codepage="1252" Language="1033" Manufacturer="Bla Corporation" Name="Bla" UpgradeCode="PUT-GUID-HERE" Version="31.00.0000"> <Package Comments="Contact: Refael Sheinker, email@example.com." Description="Bla" InstallerVersion="500" Compressed="yes" InstallScope="perMachine" Keywords="Installer,MSI,Database" Languages="1033" Manufacturer="Bla Corporation" Platform="x64" /> <Media Id="1" Cabinet="my_application.cab" EmbedCab="yes" /> <MajorUpgrade AllowDowngrades="no" AllowSameVersionUpgrades="no" Disallow="no" IgnoreRemoveFailure="no" MigrateFeatures="yes" Schedule="afterInstallInitialize" DowngradeErrorMessage="A later version of [ProductName] is already installed" /> <Property Id="WIXUI_INSTALLDIR" Value="APPLICATIONROOTDIRECTORY" /> <UIRef Id="WixUI_InstallDir" /> <Directory Id="TARGETDIR" Name="SourceDir"> <Directory Id="ProgramFiles64Folder"> <Directory Id="PROGRAMFILESSUBDIR" Name="Bla"> <Directory Id="APPLICATIONROOTDIRECTORY" Name="BlaInternal" /> </Directory> </Directory> </Directory> <DirectoryRef Id="APPLICATIONROOTDIRECTORY"> <Component Id="tenlira.ini" Guid="*"> <File Id="tenlira.ini" Source="..\ConfigurationFile\x64\tenlira.ini" KeyPath="yes" /> </Component> </DirectoryRef> <Feature Id="MainApplication" Title="TenLira" Level="1"> <ComponentRef Id="tenlira.ini" /> </Feature> </Product> </Wix>
All it does is simply installing a single file as an example. So far, so good. Now, all I do is add another
File and off course the corresponding
Feature. I specifically leave the
Version as is: 31.00.0000. What I expected is that the new installer will not perform a Major Upgrade, but it does. Why? Also, there is now 2 entries in Add/Remove Programs.
Please help me find out what am I missing here. Thanks. Refael.
Posting the question got me to reread the documentation again and I discovered that the
AllowSameVersionUpgrades thingy in the
MajorUpgrade element should be set to
yes. This time there is only one entree in the Add/Remove Programs, but it still performs Major Upgrade. Why?
Getting Duplicate Entries in Add/Remove Programs, own Upgrade entries. On 9/19/13 5:11 PM, Daniel Sniderman wrote: > Not sure what I'm doing wrong. Here's Wix Installer:Setting component condition property when doing a MSIEXEC admin install at command line Doing Major Upgrade in Wix creates 2 entries in Add/Remove Programs How can I compare the content of two(or more) MSI files?
It does a major upgrade because both MSIs have the same UpgradeCode and you have now specified AllowSameVersionUpgrades, so it does the upgrade where it didn't before.
Your build generates a new ProductCode every time, so each MSI is a new product, so you will get it installed twice if it doesn't do an upgrade and once if it does. You may have some assumption about the way upgrades work that you haven't spelled out.
WiX toolset / Re: [WiX-users] multiple entries in add remove programs., I received the following results: > > In Major Update: > - in case that the I have >> only one Entry in the Add Remove Program but when I Uninstall this entry >> only Do you have >>>>> RemoveExistingProducts scheduled somewhere? Id='*' Keywords='Installer' >>>>> which is not in the code you sent me. >>>>> 2. Creating a WiX upgrade. In order to create an upgrade for our WiX installer, we first need to increase the assembly version for the windows application we’ve created earlier. To do this, right-click on the project in the Visual Studio Solution Explorer window and select properties.
I had the same problem where Version is same, but the Id is different creating multiple entries in Add/Remove programs. My simple fix was to set AllowSameVersionUpgrades="yes".
<MajorUpgrade AllowSameVersionUpgrades="yes" DowngradeErrorMessage="A newer version of $(var.ServiceName) is already installed." />
How To: Implement a Major Upgrade In Your Installer, There are some upgrade-related bugs that can be fixed purely by making fixes in version 2 or higher of your .msi, but there are some bugs that affect the uninstall The following steps remove only the registry entries related to a program as it appears in the Add/Remove Programs tool. To completely uninstall a program that was not completely removed by clicking the Change/Remove button in the Add/Remove Programs tool, you need to clean up the physical directory structure on disk and in the registry also.
How To: Create a Shortcut on the Start Menu, The second Directory element creates a subfolder on the Start Menu called My Application Step 2: Add the shortcut to your installer package In addition to creating the shortcut the component contains two other important pieces. The second creates a registry entry on install that indicates the application is installed. Create a key with your product name under HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall to add entries to the "Add/Remove Programs" section in the Control Panel. For Windows NT (NT4/2000/XP), it's also possible to create the key in the HKCU hive, so it will only appear for the current user.
How to implement a WiX installer upgrade, How to get a WiX setup project to update a previously installed version of a program. version of this product, use Add/Remove Programs on the Control Panel” It is important to keep this value an asterisk, if you set it to a GUID, you (b) to install the applications' help file; and (c) to create an entry in the Sent: Tuesday, November 4, 2014 7:55 AM To: WiX - users Subject: Re: [WiX-users] Force a MajorUpgrade to do complete uninstall BEFORE new install I have posted the same question a few days ago and I have received the same answer, I think it's a bug of WiX Burn.I this way I can't execute upgrade of the Burn package as it creates many problems to
Add/Remove Programs entries missing after repair of Wix Bundle , If I do a repair after a fresh install, all entries in Add/Remove programs remain intact. Rather some MSIs are already installed and the bundle upgrades some of 2 Key = Software\Microsoft\Windows\CurrentVersion\Uninstall\[UPGRADE_1] a significant uninstall step in the old installer that you dont have in the new one. =20 Let me go further into what I am trying to do: =20 I decompiled the msxml6 msi and created a merge module for it. So far, everything seem to work - =20 1. The dll get installed in system32 2. All of the registry entries happen correctly, so far as I can tell. 3. An entry appears in the "add\remove programs" screen for msxml6.