I've built a 1.0.1 patch against my 1.0.0 Web .EXE installer, and I'm noticing some inconsistencies in how it behaves as compared to the full installer.
My installers write the current install version to the registry at HKLM/Software/My Company, and then check that location when the installer is run to be sure we aren't trying to overwrite a newer version - protecting the user from himself, and ensuring that all users will be using the most current version.
So, this causes 2 problems. Firstly, if I run the patch to upgrade to 1.0.1, it properly updates the version number stored in the registry. However, on uninstall, this registry value is not removed. It is properly removed when uninstalling a 1.0.1 or a 1.0.0 that was installed using the full installer. Any idea why the patch isn't taking care of this?
Also, in a related point, I have script in there to check this registry entry and terminate the installer if the version stored in the registry is greater than the installer's version number. So, it seems that when I use the patch to upgrade 1.0.0 to 1.0.1, and then uninstall, this logic hasn't been updated, so the installer terminates (seeing 1.0.1 in the registry, but comparing against 1.0.0, when it should be comparing against 1.0.1). Do patches update installer logic? Or do they just do a one time restructuring of the install directories? I hope I've explained this well enough to be understood.
Finally, I've noticed that if I run the 1.0.1 patch after installing 1.0.1 with the 1.0.1 full installer, it errors, saying that it cannot find an installed program to update. But if I run the 1.0.1 patch after upgrading a 1.0.0 install with that same 1.0.1 patch, it doesn't give that same error. Shouldn't these two cases behave the same? I would expect that a 1.0.1 install should always behave the same, regardless of whether it is the product of a full 1.0.1 install, or a patch from 1.0.0 to 1.0.1. Any thoughts on this?
Thanks,
Peenesh Shah
Patch behavior inconsistent with full installer behavior
-
- Posts: 3452
- Joined: Thu Dec 22, 2005 7:17 pm
- Contact:
When you apply a patch, the file system and registry will be updated, as well as any other commands your MSIcode contains for patching. The installed version install itself will not be updated, so you version check will naturally fail.
You will not be able to patch a 1.1 product with a patch that was built only for a 1.0 product. You need to add 1.1 as a patch reference if you want to do that (which is of course, pointless).
You will not be able to patch a 1.1 product with a patch that was built only for a 1.0 product. You need to add 1.1 as a patch reference if you want to do that (which is of course, pointless).
Michael Nesmith
InstallAware
Home of The Next Generation MSI Installer
Get your free copy today - http://www.installaware.com/
InstallAware
Home of The Next Generation MSI Installer
Get your free copy today - http://www.installaware.com/
Patch behavior inconsistent with full installer behavior
Thanks for the info, but you missed one of my questions, probably the one that is most important, "... if I run the patch to upgrade to 1.0.1, it properly updates the version number stored in the registry. However, on uninstall, this registry value is not removed. It is properly removed when uninstalling a 1.0.1 or a 1.0.0 that was installed using the full installer. Any idea why the patch isn't taking care of this?" So, to recap, this registry value is written on install, and is removed on uninstall if I don't patch. But once I patch, it doesn't get removed on uninstall. The patch does update this value, but it doesn't change its location, so I don't see why this doesn't work.
With regards to your answer to one of my other questions - if the 1.0.1 patch won't work on the 1.0.1 full install, shouldn't it also error on the 1.0.1 patch, for the sake of consistency? This is not that important, it just seems like incorrect behavior.
Thanks again.
With regards to your answer to one of my other questions - if the 1.0.1 patch won't work on the 1.0.1 full install, shouldn't it also error on the 1.0.1 patch, for the sake of consistency? This is not that important, it just seems like incorrect behavior.
Thanks again.
Who is online
Users browsing this forum: No registered users and 143 guests