cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
osenft
Level 3

Update.exe for MSI created by Developer 8 to MSI created by 2008

Hi,

I need to create an update.exe (minor update) that updates the installation of our product from an MSI that was created by IS Developer 8 to the new MSI which was created by IS 2008.

The IS MSI project originally used in Developer 8 was upgraded in IS 2008 which means that the components and product codes match.

The update.exe is being created successfully (despite of some warning of components that allegedly have been removed). When I then apply the update.exe to an installation, the process succeeds and the files are updated correctly (as far as I could see).

Here now the problem: In "Add and Remove Programs", the entry for our product lost its "Change" and "Remove" buttons. When I install either old or new MSI they are shown and work correctly.

I then ran msiexec /x {productcode} manually which appeared to do the normal procedure. However, even after rebooting, the "Add and Remove Programs" still shows the product (but it lost its icon) and the program menu entries have not been removed. This also works when installing/uninstalling either of both MSIs without doing the update.

We've created update.exe using Developer 8 for years and never had problems. Also the update from one IS 2008 MSI to another appears to be fine. Only the Dev8 -> IS2008 is dodgy ...

Does anyone have experience if this type of update.exe is actually supported? If so, do you have any clue where to start looking for the problem?

Thanks for any suggestion
Oskar.
Labels (1)
0 Kudos
(2) Replies
joshstechnij
Level 10 Flexeran
Level 10 Flexeran

The information written to the uninstall key by InstallScript MSI projects has changed from what was written with a Developer 8 built project. This is the cause of the Add/Remove Programs entry losing the change/remove button. You could try looking at the differences in the uninstall key before and after applying the patch, and include the different registry entries in the patch (in the Registry view or script such an in the OnPatchUIAfter event). The recommended solution would be to perform a major upgrade to remove any use of the old InstallScript engine from Developer 8 (the engine was changed in IS 12 to be much more stable than what was used in Developer 8).

Also, to uninstall an InstallScript MSI project, the UninstallString value from HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\InstallShield_{ProductCode} needs to be used. Running the uninstall with msiexec will fail to remove anything placed on the system by the script engine (such as the uninstall key).
0 Kudos
osenft
Level 3

Hi!

joshstechnij wrote:
You could try looking at the differences in the uninstall key before and after applying the patch, and include the different registry entries in the patch (in the Registry view or script such an in the OnPatchUIAfter event).

Thanks, that was a good clue. With that in mind I found this article:
Remove/Modify missing from Add/Remove control panel entry
This solved the problem for me, as well.

The recommended solution would be to perform a major upgrade to remove any use of the old InstallScript engine from Developer 8 (the engine was changed in IS 12 to be much more stable than what was used in Developer 8).

Unfortunately, this is not an option for us.

Thanks
Oskar.
0 Kudos