-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Have different Windows uninstall keys for different Julia versions #40163
Conversation
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 ```
This is one way to solve the problem. This essentially makes every new version of Julia a unique program. I've thought about doing this before. I think it's fine, but consider the tradeoffs. Auto-upgrading Julia through the Inno installer is going to be difficult, since the newer version is treated as separate program (they'll have different reg keys). So I guess another way of saying this is that if we implemented an auto-updater, this would make that harder to implement. If we don't care about that and are fine with parallel installs then this should be fine. |
Basically, every version of Julia (major,minor,patch, rc candidate, dev version) installed is going to have a separate entry and it will be the user's responsibility to remove the older versions. @KristofferC I think we might want to backport this to the 1.6 branch. |
Co-authored-by: Mustafa M <mus-m@outlook.com>
I think that's the best way to do this. It's a common use case to have multiple versions installed in parallel. |
…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)
Could you help me out on how to uninstall version 1.5.3 that's now left without an uninstaller in my system? |
Ah.. the uninstaller is still there, physically |
…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)
…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)
…uliaLang#40163) * Have different Windows uninstall keys for different Julia versions Should fix JuliaLang#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>
…uliaLang#40163) * Have different Windows uninstall keys for different Julia versions Should fix JuliaLang#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>
…uliaLang#40163) * Have different Windows uninstall keys for different Julia versions Should fix JuliaLang#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>
…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)
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
closes #36933