
I'm developing the installer for a product where we can't set the upgrade table at build-time. So to be able to remove the previous installation of the product, I have written a custom action that does a bit of registry searching and inserts an entry into the upgrade table of the running installation. This actually seems to work, using a bit of message box debugging I can see the custom action doing it's thing. The FindRelatedProducts action runs and sets the correct product ID in the selected ActionProperty. Everything seems to be running in just the same way as when I manually insert an entry in the upgrade table.
But then it falls apart. The RemoveExistingProducts action doesen't run. Relevant extracts from the log:
[...]
Action start 18:15:27: FindRelatedProducts.
MSI © (A4:EC) [18:15:27:265]: PROPERTY CHANGE: Adding REMOVEGUIDPROPERTY property. Its value is '{2EE5D018-1CE1-411F-9F72-2D95942C055C}'.
Action ended 18:15:27: FindRelatedProducts. Return value 1.
[...]
MSI (s) (0C:EC) [18:15:28:343]: Doing action: RemoveExistingProducts
Action start 18:15:28: RemoveExistingProducts.
MSI (s) (0C:EC) [18:15:28:343]: Note: 1: 2262 2: Upgrade 3: -2147287038
Action ended 18:15:28: RemoveExistingProducts. Return value 1.
[...]
I can't figure out why this action doesen't remove the previous installation. Everything seems to be set correctly but it doesen't work. Has anyone tried anything like this? I can't see any reason why this shouldn't be doable, but maybe I'm missing something?
If anyone can point me to some documentation on the format on these logs, I'd really appreciate that too, since I haven't really been able to find any. What does "Note: 1: 2262 2: Upgrade 3: -2147287038" mean?