winstep wrote:
I've been trying to understand exactly why this sometimes happens so I can come up with a fix, but so far without success.
Thanks to another user who was patient enough to stick with me and the many different things I asked him to try and check, I think I finally understand what is *probably* going on:
When Setup installs a Winstep application on your system, it creates an entry in the Windows Registry with all the information required to properly uninstall the software later.
This Registry entry is located at
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\Winstep Xtreme_is1
Notice the 'Winstep Xtreme_is1' signature, it's the same for the free version of Nexus, Nexus Ultimate and Winstep Xtreme. This is by design and very important, since these three applications can be considered branches of the same tree (they share all user data, etc), and also so that when you install Nexus Ultimate over the free version of Nexus you don't get two different uninstall entries in the Programs and Features Control Panel applet, but a single one.
Setup also adds an 'uninstall000.exe' program to the C:\Program Files (x86)\Winstep\ folder - it is this uninstall000.exe program that is run when you chose to uninstall the sofftware from the Programs and Features dialog in the Windows Control Panel.
So, to properly uninstall the software, you need two things: the existence of the uninstall000.exe program in the Winstep folder, and that 'Winstep Xtreme_is1' section in the Windows Registry. The latter section tells the uninstaller where everything is, what it needs to delete, and what it needs to leave behind.
When a new version is released, provided you are not too far behind in terms of versions, the Winstep Update Manager downloads a much smaller 'update' pack which contains only the files that have changed in-between versions.
When installing this upgrade pack, Setup adds information to the uninstall 'Winstep Xtreme_is1' section in the Windows Registry. This way, if new files are included in the upgrade they will be later deleted too if you decided to uninstall the software.
Obviously, for this to happen the 'Winstep Xtreme_is1' section must be already present in the Windows Registry. If the setup application for the upgrade pack can't find it, it thinks you are trying to install an upgrade pack as if it was a standalone (full) install by mistake, which you can't do because critical files will be missing in that case. It thus throws the 'Can only be installed over a full version...' message and quits.
In the case of the user getting this error, even though Nexus Ultimate was installed and running on his system, two things stood out:
1. There was no 'Winstep Xtreme_is1' entry to be found *anywhere* on his Windows Registry. There was NOTHING related to a Winstep application on the Uninstall part of the Windows Registry either.
2. Programs and Features in the Windows Control panel did NOT list Nexus Ultimate either (which also meant the user could not uninstall it normally even if he wanted to).
So, this was not, as I was at the time suspecting, a case of 'Winstep Xtreme_is1' getting renamed to something else or being misplaced. No, there was simply no Winstep uninstall information whatsoever in the whole Windows Registry. It had mysteriously vanished.
So I then asked the user the obvious question: did you use or do you normally use any type of Registry Cleaner software?
And his answer was, of course, yes.
So there you have it, ladies and gentleman. The true culprit and proof of why Registry Cleaners normally do more harm than good! For whatever reason, the user's Registry Cleaner software had at some point decided to wipe the Winstep uninstall section from Registry.
So my advice to everyone is: STOP USING REGISTRY CLEANER SOFTWARE! It can potentially damage or render your system unstable, and it will do this in such subtle ways that when you do experience problems you will not be able to add two and two together to figure out who the true culprit is!
Knowing this now, I'm glad I did not remove from the installer the check for a previous installation (that would have been the 'easy' solution) as this would have created other problems down the line.
Now, as I previously stated, the remedy for this situation always is to install the FULL setup file of the latest version *on top* of your current installation (and its as simple as that).
This will install all files and re-create the Winstep uninstall section in the Windows Registry, which in turn allows you to properly uninstall the software later from the Windows Control Panel. Doing this is perfectly fine because it does NOT override or destroy your current settings, which are stored somewhere else in the Registry and therefore will be preserved.
So, now that I know what is really going on, I'm going to have the Update Manager itself preemptively check for the existence of the 'Winstep Xtreme_is1' key in the Registry. If it doesn't find it, it will automatically download the FULL install pack instead of the smaller update pack (which, as we now know, solves the problem), thus putting a permanent end to all these 'update is not installing' stories.
TL;DR: STOP USING REGISTRY CLEANERS!!!