Win installer: fix registry issue

- when installing LyX 2.3.x over a previous 2.3.x installation a registry key was not deleted
- also fix some hardcoded occurrences of "lyx"
This commit is contained in:
Uwe Stöhr 2019-10-20 23:06:21 +02:00
parent cbaf5e70f8
commit 54acc050f6
3 changed files with 8 additions and 5 deletions

View File

@ -37,6 +37,7 @@ Configuration of LyX installer
# Names and version # Names and version
!define APP_NAME "LyX" !define APP_NAME "LyX"
!define APP_NAME_SMALL "lyx"
!define APP_VERSION_NUMBER "${APP_VERSION_MAJOR}.${APP_VERSION_MINOR}.${APP_VERSION_REVISION}.${APP_VERSION_BUILD}" !define APP_VERSION_NUMBER "${APP_VERSION_MAJOR}.${APP_VERSION_MINOR}.${APP_VERSION_REVISION}.${APP_VERSION_BUILD}"
# for the proposed install folder we use the scheme "LyX 2.2" while we need for the registry the scheme "LyX 2.1.4" # for the proposed install folder we use the scheme "LyX 2.2" while we need for the registry the scheme "LyX 2.1.4"
# to check if it is exactly this version (to support side by side installations) # to check if it is exactly this version (to support side by side installations)
@ -66,8 +67,8 @@ Configuration of LyX installer
!define APP_REGNAME_DOC "${APP_NAME}.Document" !define APP_REGNAME_DOC "${APP_NAME}.Document"
!define APP_EXT ".lyx" !define APP_EXT ".${APP_NAME_SMALL}"
!define APP_MIME_TYPE "application/lyx" !define APP_MIME_TYPE "application/${APP_NAME_SMALL}"
!define APP_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${SETUP_UNINSTALLER_KEY}" !define APP_UNINST_KEY "Software\Microsoft\Windows\CurrentVersion\Uninstall\${SETUP_UNINSTALLER_KEY}"
@ -81,7 +82,7 @@ Configuration of LyX installer
!define SETUP_EXE ${ExeFile} !define SETUP_EXE ${ExeFile}
!endif !endif
!define SETUP_ICON "${FILES_ICONS}\lyx.ico" !define SETUP_ICON "${FILES_ICONS}\${APP_NAME_SMALL}.ico"
!define SETUP_HEADERIMAGE "graphics\header.bmp" !define SETUP_HEADERIMAGE "graphics\header.bmp"
!define SETUP_WIZARDIMAGE "graphics\wizard.bmp" !define SETUP_WIZARDIMAGE "graphics\wizard.bmp"
!define SETUP_UNINSTALLER "Uninstall-${APP_NAME}.exe" !define SETUP_UNINSTALLER "Uninstall-${APP_NAME}.exe"

View File

@ -46,7 +46,7 @@ Section -InstallData
WriteRegStr SHCTX ${APP_UNINST_KEY} "UninstallString" '"$INSTDIR\${SETUP_UNINSTALLER}"' WriteRegStr SHCTX ${APP_UNINST_KEY} "UninstallString" '"$INSTDIR\${SETUP_UNINSTALLER}"'
WriteRegStr SHCTX ${APP_UNINST_KEY} "DisplayVersion" "${APP_VERSION}" WriteRegStr SHCTX ${APP_UNINST_KEY} "DisplayVersion" "${APP_VERSION}"
WriteRegStr SHCTX ${APP_UNINST_KEY} "DisplayIcon" "$INSTDIR\bin\lyx.exe" WriteRegStr SHCTX ${APP_UNINST_KEY} "DisplayIcon" "$INSTDIR\bin\${APP_NAME_SMALL}.exe"
WriteRegStr SHCTX ${APP_UNINST_KEY} "URLUpdateInfo" "${APP_WEBPAGE}" WriteRegStr SHCTX ${APP_UNINST_KEY} "URLUpdateInfo" "${APP_WEBPAGE}"
WriteRegStr SHCTX ${APP_UNINST_KEY} "URLInfoAbout" "https://www.lyx.org/AboutLyX" WriteRegStr SHCTX ${APP_UNINST_KEY} "URLInfoAbout" "https://www.lyx.org/AboutLyX"
WriteRegStr SHCTX ${APP_UNINST_KEY} "Publisher" "${APP_NAME} Team" WriteRegStr SHCTX ${APP_UNINST_KEY} "Publisher" "${APP_NAME} Team"
@ -58,8 +58,10 @@ Section -InstallData
# if we install over an older existing version, remove the old uninstaller information # if we install over an older existing version, remove the old uninstaller information
${if} $OldVersionNumber < ${APP_SERIES_KEY} ${if} $OldVersionNumber < ${APP_SERIES_KEY}
DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APP_NAME}$OldVersionNumber" DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APP_NAME}$OldVersionNumber"
DeleteRegKey SHCTX "SOFTWARE\${APP_NAME}$OldVersionNumber"
# also delete in the case of an emergency release # also delete in the case of an emergency release
DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APP_NAME}$OldVersionNumber1" DeleteRegKey SHCTX "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APP_NAME}$OldVersionNumber1"
DeleteRegKey SHCTX "SOFTWARE\${APP_NAME}$OldVersionNumber1"
${endif} ${endif}
SectionEnd SectionEnd

View File

@ -18,7 +18,7 @@ Section -ProgramFiles SecProgramFiles
# be installed directly to C:\programs - the uninstaller will then delete the whole # be installed directly to C:\programs - the uninstaller will then delete the whole
# C:\programs directory # C:\programs directory
StrCpy $String $INSTDIR StrCpy $String $INSTDIR
StrCpy $Search "LyX" StrCpy $Search "${APP_NAME}"
Call StrPoint # function from LyXUtils.nsh Call StrPoint # function from LyXUtils.nsh
${if} $Pointer == "-1" ${if} $Pointer == "-1"
StrCpy $INSTDIR "$INSTDIR\${APP_DIR}" StrCpy $INSTDIR "$INSTDIR\${APP_DIR}"