Skip to content

Commit

Permalink
Have different Windows uninstall keys for different Julia versions (#…
Browse files Browse the repository at this point in the history
…40163)

* Have different Windows uninstall keys for different Julia versions

Should fix #40004.  Have the uninstall key to be "{#AppNameLong}_is1" where AppNameLong contains the Julia version to prevent Windows from overwriting the uninstall information for different Julia versions.

Inno Setup documentation about the AppId https://jrsoftware.org/ishelp/topic_setup_appid.htm copied here for convenience
```
[Setup]: AppId

Default value:

AppName
Description:

The value of AppId is stored inside uninstall log files (unins???.dat), and is checked by subsequent installations to determine whether it may append to a particular existing uninstall log. Setup will only append to an uninstall log if the AppId of the existing uninstall log is the same as the current installation's AppId. For a practical example, say you have two installations -- one entitled My Program and the other entitled My Program 1.1 Update. To get My Program 1.1 Update to append to My Program's uninstall log, you would have to set AppId to the same value in both installations.

AppId also determines the actual name of the Uninstall registry key, to which Inno Setup tacks on "_is1" at the end. (Therefore, if AppId is "MyProgram", the key will be named "MyProgram_is1".) Pre-1.3 versions of Inno Setup based the key name on the value of AppVerName.

AppId is a not used for display anywhere, so feel free to make it as cryptic as you desire. The value may include constants.

If you use a {code:..} constant to allow your user to customize AppId, you do not need to return the real value until just before the installation starts: if necessary you may return an empty or generic value at earlier times. If not empty, this value will only be used to attempt to restore previous install settings (like the settings stored by [Setup] section directive UsePreviousAppDir). If empty, it isn't used for anything.

The length of AppId with all constants evaluated should never exceed 127 characters.
Example:

AppId=MyProgram
```

* Use DirName as AppId

Co-authored-by: Mustafa M <mus-m@outlook.com>

* remove unneeded code

Co-authored-by: Mustafa M <mus-m@outlook.com>
(cherry picked from commit e2f5f26)
  • Loading branch information
jaakkor2 authored and staticfloat committed Dec 22, 2022
1 parent fc2a7b4 commit e1fb66c
Showing 1 changed file with 4 additions and 5 deletions.
9 changes: 4 additions & 5 deletions contrib/windows/build-installer.iss
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,6 @@
#define AppName "Julia"
#endif

#ifndef AppId
#define AppId "{{054B4BC6-BD30-45C8-A623-8F5BA6EBD55D}"
#endif

#ifndef DirName
#define DirName AppName + "-" + AppVersion
#endif
Expand All @@ -14,6 +10,9 @@
#define AppMainExeName "bin\julia.exe"
#define CurrentYear GetDateTimeString('yyyy', '', '')

#ifndef AppId
#define AppId DirName
#endif


[LangOptions]
Expand Down Expand Up @@ -61,7 +60,7 @@ AppName={#AppName}
AppVersion={#AppVersion}
AppPublisher=Julia Language
AppPublisherURL=https://julialang.org
AppCopyright=Copyright 2009-{#CurrentYear}; Julia Langage
AppCopyright=Copyright 2009-{#CurrentYear}; Julia Language
VersionInfoDescription=Julia Installer
PrivilegesRequiredOverridesAllowed=commandline
WizardStyle=modern
Expand Down

0 comments on commit e1fb66c

Please sign in to comment.