For a major upgrade you MUST change the product GUID, increase your version
number (Minor version) i.e. from 1.0.0.1 to 1.1.0.1 and use the MajorUpgrade
element.
I just use:
Did you change the Product Id="some GUID">
<MajorUpgrade Schedule="afterInstallValidate" AllowDowngrades="no"
DowngradeErrorMessage="A newer version of $(var.PlatformProductName) is already
installed. Setup will now exit." />
Comment OUT all of this:
<Upgrade Id="11111111-2222-3333-55555-6666666666666">
<UpgradeVersion Property="OLD_VERSION_FOUND"
Minimum="1.0.0.0" Maximum="$(var.CurrentVersion)"
IncludeMinimum="yes" IncludeMaximum="no"
OnlyDetect="no" Language="1033" IgnoreRemoveFailure="yes"
MigrateFeatures="yes" />
<UpgradeVersion Property="NEWER_VERSION_FOUND"
Minimum="$(var.CurrentVersion)" IncludeMinimum="no" OnlyDetect="yes"
Language="1033" />
</Upgrade>
<InstallExecuteSequence>
<RemoveExistingProducts After="InstallFinalize" />
</InstallExecuteSequence>
That should work...
Steve
-----Original Message-----
From: Helge Kruse [mailto:[email protected]]
Sent: February-15-13 10:34 AM
To: [email protected]
Subject: [WiX-users] Remove Existing Products
I want to install my first major upgrade. The older product MSI version 1.05.02
has been build with InstallShield. Let's say the UpgradeCode of the old product
is 11111111-2222-3333-55555-6666666666666.
My new installer has the same UpgradeCode as the old product version.
<?define CurrentVersion="1.06.00"?>
<Product Id="*" Language="1033" Version="$(var.CurrentVersion)"
UpgradeCode="11111111-2222-3333-55555-6666666666666">
The upgrade should be determined by the following fragment, that is based on
the WiX book of Nick Ramirez:
<Upgrade Id="11111111-2222-3333-55555-6666666666666">
<UpgradeVersion Property="OLD_VERSION_FOUND"
Minimum="1.0.0.0" Maximum="$(var.CurrentVersion)"
IncludeMinimum="yes" IncludeMaximum="no"
OnlyDetect="no" Language="1033" IgnoreRemoveFailure="yes"
MigrateFeatures="yes" />
<UpgradeVersion Property="NEWER_VERSION_FOUND"
Minimum="$(var.CurrentVersion)" IncludeMinimum="no" OnlyDetect="yes"
Language="1033" />
</Upgrade>
<InstallExecuteSequence>
<RemoveExistingProducts After="InstallFinalize" />
</InstallExecuteSequence>
I have checked that the UpgradeCode and the Language match with the former
product version. When I install the new MSI does not remove the existing
product. When running msiexec with /l*v I get this log
(excerpt):
Action ended 15:51:41: InstallValidate. Return value 1.
MSI (s) (E0:DC) [15:51:41:910]: Doing action: RemoveExistingProducts Action
15:51:41: RemoveExistingProducts. Removing applications Action start 15:51:41:
RemoveExistingProducts.
Action ended 15:51:41: RemoveExistingProducts. Return value 1.
MSI (s) (E0:DC) [15:51:41:912]: Doing action: InstallInitialize Action
15:51:41: InstallInitialize.
Action start 15:51:41: InstallInitialize.
AFAIK the return value 1 of RemoveExistingProducts indicates an error.
But I don't know what error.
The new files are installed, but I still see the old version of the product in
the Programs and Features. When I uninstall the old MSI the product is removed.
How do I find the failure for the RemoveExistingProducts action? How do I fix
my setup wxs?
Regards
Helge
------------------------------------------------------------------------------
Free Next-Gen Firewall Hardware Offer
Buy your Sophos next-gen firewall before the end March 2013 and get the
hardware for free! Learn more.
http://p.sf.net/sfu/sophos-d2d-feb
_______________________________________________
WiX-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wix-users
------------------------------------------------------------------------------
Free Next-Gen Firewall Hardware Offer
Buy your Sophos next-gen firewall before the end March 2013
and get the hardware for free! Learn more.
http://p.sf.net/sfu/sophos-d2d-feb
_______________________________________________
WiX-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/wix-users