Hi Guys. Hope you can help me with a little issue i have. First off i dont claim to be a packaging god but know enough to get by.

I have an application that is installed on users machines and i have the same application but with updated files and registry keys etc etc. I would like to uninstall the previous version if found and then install the latest version.

Now i have been looking at the Upgrade table. I have put in the upgrade code of the previous version, the VersionMin, Attributes 258 and ActionProperty NEWERPRODUCTFOUND

However when the application is installed it just installed the new one. If i look in Add \ Remove programs in windows i can see both my applications installed.

Can anyone advise on how i can achive what it is i am trying to do

Thanks in advance for any help
0 Comments   [ + ] Show Comments


Please log in to comment

Rating comments in this legacy AppDeploy message board thread won't reorder them,
so that the conversation will remain readable.


If the previous version was installed per-user, then only the installing user can uninstall it, without some major registry acrobatics. The same applies if it was deployed via Group Policy. If either (or both!) of those is true, the simplest route is to build the uninstall into your new package by using the RemoveFile and RemoveRegistry tables. You'll need to locate the 'managed' registry entries and make sure your package removes them, as well as the ARP stuff.
Answered 02/16/2010 by: VBScab
Red Belt

Please log in to comment

1) you should also remember to add your NEWERPRODUCTFOUND property to the SecureCustomProperties in your MSI's Property table

2) 258 being 256 + 2 and considering the following quote from MSDN about the attributes:

2 0x002 Detects products and applications but does not remove.
256 0x100 Detects the range of versions including the value in VersionMin.

This might be part of your problem too [;)]

Answered 02/16/2010 by: pjgeutjens
Red Belt

Please log in to comment

While upgrading the application, you have to consider below points
1.Upgradecode has to same as previous version (Synchronize)
2.Product version has to be greater than previous version (According to the versioning rules)
3.Enter the same Upgrade code in Property table
4.In VesionMax column enter the Product version
5.Attributes (msidbUpgradeAttributesMigrateFeatures ) 1 (0x001) -- Migrates feature states by enabling the logic in the MigrateFeatureStates action.

If above said attribute didn’t work
Attributes set to 513… I don’t remember exactly please try…

As per Windows installer ActionProperty :

“When the FindRelatedProducts action detects a related product installed on the system, it appends the product code to the property specified in this field. The property specified in this column must be a public property and the package author must add the property to the SecureCustomProperties property. Each row in the Upgrade table must have a unique ActionProperty value. After FindRelatedProducts, the value of this property is a list product codes, separated by semicolons (;), detected on the system”

Hope this may help you,
Answered 02/16/2010 by: Harsha Gurugunti
Senior Yellow Belt

Please log in to comment
Answer this question or Comment on this question for clarity