#nsis
#nsis
Вопрос:
Мой пользовательский установщик NSIS не останавливается после установки программы. Однако установка прошла успешно. Установщик NSIS запускается и потребляет много ресурсов процессора.
Ниже прилагается .nsi
сценарий
############################################################################################
# NSIS Installation Script created by NSIS Quick Setup Script Generator v1.09.18
# Entirely Edited with NullSoft Scriptable Installation System
# by Vlasis K. Barkas aka Red Wine red_wine@freemail.gr Sep 2006
############################################################################################
UNICODE True
!define APP_NAME "PaperBuilder"
!define COMP_NAME "IISER-M Students"
!define WEB_SITE "https://iiserm.github.io/PaperBuilder"
!define VERSION "00.01.00.00"
!define COPYRIGHT ""
!define DESCRIPTION "Create beautiful Latex projects with Markdown"
!define INSTALLER_NAME "..releasePaperBuilder-Setup.exe"
!define MAIN_APP_EXE "PaperBuilder.bat"
!define INSTALL_TYPE "SetShellVarContext current"
!define REG_ROOT "HKCU"
!define REG_APP_PATH "SoftwareMicrosoftWindowsCurrentVersionApp Paths${MAIN_APP_EXE}"
!define UNINSTALL_PATH "SoftwareMicrosoftWindowsCurrentVersionUninstall${APP_NAME}"
######################################################################
VIProductVersion "${VERSION}"
VIAddVersionKey "ProductName" "${APP_NAME}"
VIAddVersionKey "CompanyName" "${COMP_NAME}"
VIAddVersionKey "LegalCopyright" "${COPYRIGHT}"
VIAddVersionKey "FileDescription" "${DESCRIPTION}"
VIAddVersionKey "FileVersion" "${VERSION}"
######################################################################
SetCompressor ZLIB
Name "${APP_NAME}"
Caption "${APP_NAME}"
OutFile "${INSTALLER_NAME}"
BrandingText "${APP_NAME}"
XPStyle on
InstallDirRegKey "${REG_ROOT}" "${REG_APP_PATH}" ""
InstallDir "$PROGRAMFILES64PaperBuilder"
######################################################################
!include "FileFunc.nsh"
!insertmacro GetParent
!include "MUI.nsh"
!define MUI_ABORTWARNING
!define MUI_UNABORTWARNING
!insertmacro MUI_PAGE_WELCOME
!ifdef LICENSE_TXT
!insertmacro MUI_PAGE_LICENSE "${LICENSE_TXT}"
!endif
!insertmacro MUI_PAGE_DIRECTORY
!ifdef REG_START_MENU
!define MUI_STARTMENUPAGE_NODISABLE
!define MUI_STARTMENUPAGE_DEFAULTFOLDER "PaperBuilder"
!define MUI_STARTMENUPAGE_REGISTRY_ROOT "${REG_ROOT}"
!define MUI_STARTMENUPAGE_REGISTRY_KEY "${UNINSTALL_PATH}"
!define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "${REG_START_MENU}"
!insertmacro MUI_PAGE_STARTMENU Application $SM_Folder
!endif
!insertmacro MUI_PAGE_INSTFILES
!define MUI_FINISHPAGE_RUN "$INSTDIR${MAIN_APP_EXE}"
!insertmacro MUI_PAGE_FINISH
!insertmacro MUI_UNPAGE_CONFIRM
!insertmacro MUI_UNPAGE_INSTFILES
!insertmacro MUI_UNPAGE_FINISH
!insertmacro MUI_LANGUAGE "English"
######################################################################
Section -MainProgram
${INSTALL_TYPE}
SetOverwrite ifnewer
SetOutPath "$INSTDIR"
File /r "..build*"
SectionEnd
######################################################################
Section -Icons_Reg
SetOutPath "$INSTDIR"
WriteUninstaller "$INSTDIRbinuninstall.exe"
EnVar::SetHKLM
EnVar::AddValueEx "Path" $INSTDIR
Pop $0
DetailPrint "EnVar::AddValue returned=|$0|"
!ifdef REG_START_MENU
!insertmacro MUI_STARTMENU_WRITE_BEGIN Application
CreateDirectory "$SMPROGRAMS$SM_Folder"
CreateShortCut "$SMPROGRAMS$SM_Folder${APP_NAME}.lnk" "$INSTDIR${MAIN_APP_EXE}"
CreateShortCut "$SMPROGRAMS$SM_FolderUninstall ${APP_NAME}.lnk" "$INSTDIRbinuninstall.exe"
!ifdef WEB_SITE
WriteIniStr "$INSTDIR${APP_NAME} website.url" "InternetShortcut" "URL" "${WEB_SITE}"
CreateShortCut "$SMPROGRAMS$SM_Folder${APP_NAME} Website.lnk" "$INSTDIR${APP_NAME} website.url"
!endif
!insertmacro MUI_STARTMENU_WRITE_END
!endif
!ifndef REG_START_MENU
CreateDirectory "$SMPROGRAMSPaperBuilder"
CreateShortCut "$SMPROGRAMSPaperBuilder${APP_NAME}.lnk" "$INSTDIR${MAIN_APP_EXE}"
CreateShortCut "$SMPROGRAMSPaperBuilderUninstall ${APP_NAME}.lnk" "$INSTDIRbinuninstall.exe"
!ifdef WEB_SITE
WriteIniStr "$INSTDIR${APP_NAME} website.url" "InternetShortcut" "URL" "${WEB_SITE}"
CreateShortCut "$SMPROGRAMSPaperBuilder${APP_NAME} Website.lnk" "$INSTDIR${APP_NAME} website.url"
!endif
!endif
WriteRegStr ${REG_ROOT} "${REG_APP_PATH}" "" "$INSTDIR${MAIN_APP_EXE}"
WriteRegStr ${REG_ROOT} "${UNINSTALL_PATH}" "DisplayName" "${APP_NAME}"
WriteRegStr ${REG_ROOT} "${UNINSTALL_PATH}" "UninstallString" "$INSTDIRbinuninstall.exe"
WriteRegStr ${REG_ROOT} "${UNINSTALL_PATH}" "DisplayIcon" "$INSTDIR${MAIN_APP_EXE}"
WriteRegStr ${REG_ROOT} "${UNINSTALL_PATH}" "DisplayVersion" "${VERSION}"
WriteRegStr ${REG_ROOT} "${UNINSTALL_PATH}" "Publisher" "${COMP_NAME}"
!ifdef WEB_SITE
WriteRegStr ${REG_ROOT} "${UNINSTALL_PATH}" "URLInfoAbout" "${WEB_SITE}"
!endif
ExecWait '"msiexec" /i "$INSTDIRprereqpandoc.msi"'
SectionEnd
######################################################################
Section Uninstall
${GetParent} $INSTDIR $R0
Var /GLOBAL ROOT
StrCpy $ROOT $R0
Delete "$INSTDIRbinuninstall.exe"
Delete "$INSTDIR..default*"
RMDir "$INSTDIR..default"
ExecWait '"msiexec" /i "$ROOTprereqpandoc.msi"'
Delete "$INSTDIR..prereq*"
#RMDir "$INSTDIR..prereq"
Delete "$INSTDIR..bibliography.bib"
Delete "$INSTDIR..PaperBuilder website.url"
Delete "$INSTDIR..PaperBuilder.bat"
Delete "$INSTDIR..template.md"
RMDir /REBOOTOK /r $INSTDIR
RMDir "$INSTDIR.."
!ifdef REG_START_MENU
!insertmacro MUI_STARTMENU_GETFOLDER "Application" $SM_Folder
Delete "$SMPROGRAMS$SM_Folder${APP_NAME}.lnk"
Delete "$SMPROGRAMS$SM_FolderUninstall ${APP_NAME}.lnk"
!ifdef WEB_SITE
Delete "$SMPROGRAMS$SM_Folder${APP_NAME} Website.lnk"
!endif
RMDir "$SMPROGRAMS$SM_Folder"
!endif
!ifndef REG_START_MENU
Delete "$SMPROGRAMSPaperBuilder${APP_NAME}.lnk"
Delete "$SMPROGRAMSPaperBuilderUninstall ${APP_NAME}.lnk"
!ifdef WEB_SITE
Delete "$SMPROGRAMSPaperBuilder${APP_NAME} Website.lnk"
!endif
RMDir "$SMPROGRAMSPaperBuilder"
!endif
DeleteRegKey ${REG_ROOT} "${REG_APP_PATH}"
DeleteRegKey ${REG_ROOT} "${UNINSTALL_PATH}"
SectionEnd
######################################################################
Структура папок моего проекта выглядит следующим образом —
-root
|_ windows
| |_ build.nsi
|_ build
| |_ files...
|_ prereq
| |_ files
|_ release
Редактировать —
Версия NSIS — 3.06.1
Теперь, похоже, он работает нормально. Я что-то пропустил?
Комментарии:
1. Версия NSIS? Произойдет ли это, если вы удалите все вызовы EnVar?
2. Спасибо за комментарий, но теперь, похоже, он отлично работает с EnVar