Uninstallable=no -> versions in 'Add or remove programs' not updated

36 views
Skip to first unread message

Stefan Drissen

unread,
Aug 26, 2025, 12:38:21 PM (12 days ago) Aug 26
to innosetup
Hi,

I just had merry time pulling my too complex for its own good installer apart trying to figure out why the product version shown by the Windows 'Add or remove programs' dialog was only showing the initially installed version.

I have two installers:
1. initial
2. update (lots)

Both are a single file with ISPP making the distinctions between initial and update. 

Only the version (AppVersion / AppVersionName) from the initial install was showing up in 'Add or remove programs'. The update install does not result in this being updated.

All the simple examples worked fine and updated the product version flawlessly.

I simplified the code functions that populate AppId -> still no joy.
I used a constant for AppId -> still no joy, wtf?!!

Then my eye fell on the (logical) parameter in the [setup] section:

#if type == 'update'
Uninstallable=no
#endif

Since the update cannot be uninstalled separately from the initial install, this made sense to me (years ago). But as a (major nasty) side effect, the product version from the initial install is not updated.

For now I will remove Uninstallable=no from the update installer and keep my fingers crossed that I do not get other side effects.

Thoughts?


Cheers!

Stefan

Gavin Lambert

unread,
Aug 26, 2025, 11:27:03 PM (11 days ago) Aug 26
to innosetup
On Wednesday, August 27, 2025 at 4:38:21 AM UTC+12 Stefan Drissen wrote:
#if type == 'update'
Uninstallable=no
#endif

Since the update cannot be uninstalled separately from the initial install, this made sense to me (years ago). But as a (major nasty) side effect, the product version from the initial install is not updated.

For now I will remove Uninstallable=no from the update installer and keep my fingers crossed that I do not get other side effects.

It is indeed not recommended to use Uninstallable=no for update installers; instead you should ensure that both use the same AppId and the update will by default append/update the existing uninstall data rather than making a separate one.  In addition to what you noticed, making updates non-Uninstallable also means that any additional files installed for the first time during an update will not be uninstalled as the user would expect.

You can read https://jrsoftware.org/isfaq.php#updateinstall for a bit more discussion, though note that you usually don't want to do what it says for case #3 either (that's specifically for installing plugins with different names that you want to merge with the main app rather than being separately uninstalled -- so doesn't apply to updates for the main app itself).

In fact unless you can save considerable size (for both download & disk) in an update installer by omitting certain very large files that rarely change, there's usually no need to make a separate upgrade installer at all -- the same installer can be used for both initial install and upgrade.
Reply all
Reply to author
Forward
0 new messages