how-to-use/nsis/RTM_Pack_V2.nsi
2024-03-08 13:36:39 +08:00

188 lines
7.6 KiB
NSIS

!define VERSION_NUM "v1.12.1"
!define DRIVE_D "G:"
!define SECOND_LEVEL_NAME "APack"
!define RUN_ENVIRONMENT_DIR "${DRIVE_D}\${SECOND_LEVEL_NAME}\pack\Environment"
!define INSTALL_NAME "RTM_x64"
!define INSTALL_DIR "C:\ZOYON\RTM"
!define SPLIT_TOOL_DIR "${DRIVE_D}\${SECOND_LEVEL_NAME}\pack\工程切分工具20230606\工程切分工具20230606"
!define RTM_CAPTURE_DIR "${DRIVE_D}\${SECOND_LEVEL_NAME}\pack\ReleaseXML5"
!define RTM_CAPTURE_XML "${DRIVE_D}\${SECOND_LEVEL_NAME}\pack\XML"
!define RTM_XML_CONFIG_DIR "${DRIVE_D}\${SECOND_LEVEL_NAME}\pack\RTMConfiger"
!define RTM_CHANNEL_SHOW_DIR "${DRIVE_D}\${SECOND_LEVEL_NAME}\pack\ChannelShow"
!define MONITOR_DIR "${DRIVE_D}\${SECOND_LEVEL_NAME}\pack\Monitor_RealseV20.12.1"
!define RTM_VERSION_DIR "${DRIVE_D}\${SECOND_LEVEL_NAME}\pack"
; Build Unicode installer
Unicode True
; The default installation directory
InstallDir "${INSTALL_DIR}"
; Registry key to check for directory (so if you install again, it will
; overwrite the old one automatically)
InstallDirRegKey HKLM "Software\${INSTALL_NAME}" "${INSTALL_DIR}"
LoadLanguageFile "${NSISDIR}\Contrib\Language files\SimpChinese.nlf"
LangString Name ${LANG_SIMPCHINESE} "Simplified Chinese"
Name "${INSTALL_NAME}"
OutFile "x64采集软件安装包${VERSION_NUM}.exe"
RequestExecutionLevel admin
!include "${NSISDIR}\Contrib\Modern UI\System.nsh"
Page license
Page components
Page directory
Page instfiles
UninstPage uninstConfirm
UninstPage instfiles
; 停止指定的Windows服务
Function un.StopService
; 使用System plug-in的nsExec插件执行命令
; nsExec::ExecToLog 'net stop "CaptProcMgr"'
nsExec::Exec 'net stop "CaptProcMgr"'
nsExec::Exec 'net stop "CaptWarnMgr"'
Sleep 1000
FunctionEnd
Function StopService
; 使用System plug-in的nsExec插件执行命令
nsExec::Exec 'net stop "CaptProcMgr"'
nsExec::Exec 'net stop "CaptWarnMgr"'
Sleep 1000
FunctionEnd
; 停止指定的进程
Function un.StopProcess
; 使用System plug-in的nsExec插件执行命令
nsExec::ExecToLog 'taskkill /F /IM "Web.Master.exe"'
nsExec::ExecToLog 'taskkill /F /IM "NavExe.exe"'
FunctionEnd
Function StopProcess
; 使用System plug-in的nsExec插件执行命令
nsExec::ExecToLog 'taskkill /F /IM "Web.Master.exe"'
nsExec::ExecToLog 'taskkill /F /IM "NavExe.exe"'
FunctionEnd
Section "卸载程序"
SectionIn RO
Call StopProcess
Call StopService
WriteUninstaller "$INSTDIR\Uninstall.exe"
SectionEnd
; 设定许可协议文本
LicenseData "${RTM_VERSION_DIR}\license.txt"
Section "切割工具"
SetOutPath "$INSTDIR\Tool"
File /nonfatal /r "${SPLIT_TOOL_DIR}\*.*"
CreateShortCut "$DESKTOP\切分工具.lnk" $INSTDIR\Tool\SplitTaskApp.exe "" \
"$INSTDIR\Tool\Kid Mac Os.ico" 0 SW_SHOWNORMAL "" "Split Tool"
SectionEnd
Section "RTM配置工具"
SetOutPath "$INSTDIR\RTMConfiger"
File /nonfatal /r "${RTM_XML_CONFIG_DIR}\*.*"
CreateShortCut "$DESKTOP\RTM配置.lnk" $INSTDIR\RTMConfiger\RTMConfiger.exe "" \
"$INSTDIR\RTMConfiger\RTMConfiger.exe" 0 SW_SHOWNORMAL "" "采集软件RTM配置文件修改工具。"
SectionEnd
Section "监控程序"
Delete "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp\Web.Master.lnk"
Delete "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp\NavExe.lnk"
Delete "$STARTMENU\Web.Master.lnk"
Delete "$STARTMENU\NavExe.lnk"
Delete "$SMSTARTUP\Web.Master.lnk"
Delete "$SMSTARTUP\NavExe.lnk"
SetOutPath "$INSTDIR\Monitor"
File /nonfatal /r "${MONITOR_DIR}\*.*"
File "/oname=$INSTDIR\Monitor\dotnet-sdk-3.1.404-win-x64.exe" \
"${RUN_ENVIRONMENT_DIR}\dotnet-sdk-3.1.404-win-x64.exe"
SetOutPath "$INSTDIR\Monitor\Service"
CreateShortCut "$DESKTOP\Web.Master.lnk" $INSTDIR\Monitor\Service\Web.Master.exe "" \
"$INSTDIR\Monitor\Service\Web.Master.exe" 0 SW_SHOWNORMAL "" "Web监控服务器。"
;$STARTMENU
CreateShortCut "$SMSTARTUP\Web.Master.lnk" $INSTDIR\Monitor\Service\Web.Master.exe "" \
"$INSTDIR\Monitor\Service\Web.Master.exe" 0 SW_SHOWNORMAL "" "Web监控服务器。"
SetOutPath "$INSTDIR\Monitor\MainFrame"
CreateShortCut "$DESKTOP\ZyFrame.lnk" $INSTDIR\Monitor\MainFrame\App.ZyMainFrame.exe "" \
"$INSTDIR\Monitor\MainFrame\App.ZyMainFrame.exe" 0 SW_SHOWNORMAL "" "Web监控界面。"
; CreateShortCut "$DESKTOP\ZyMain.lnk" $INSTDIR\Monitor\MainFrame\ZyLaunch.exe "" \
; "$INSTDIR\Monitor\MainFrame\ZyLaunch.exe" 0 SW_SHOWNORMAL "" "Web监控界面。"
SetOutPath "$INSTDIR\Monitor\NavUIExe"
CreateShortCut "$SMSTARTUP\NavExe.lnk" $INSTDIR\Monitor\NavUIExe\NavExe.exe "" \
"$INSTDIR\Monitor\NavUIExe\NavExe.exe" 0 SW_SHOWNORMAL "" "NavExe 服务"
nsExec::Exec 'sc stop CaptWarnMgr'
nsExec::Exec 'sc delete CaptWarnMgr'
nsExec::Exec 'sc create CaptWarnMgr binPath="$INSTDIR\Monitor\Warn\WNS.Detection.exe" start=auto'
SectionEnd
Section "RTM采集软件"
Delete "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp\Web.Master.lnk"
Delete "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp\NavExe.lnk"
SetOutPath "$INSTDIR"
File /nonfatal /r "${RTM_CAPTURE_DIR}\*.*"
CreateDirectory "$INSTDIR\Plugin"
File "/oname=$INSTDIR\Plugin\mysql-connector-odbc-8.0.29-winx64.msi" \
"${RUN_ENVIRONMENT_DIR}\mysql-connector-odbc-8.0.29-winx64.msi"
File "/oname=$INSTDIR\Plugin\强制关闭本机所有采集.bat" \
"${RUN_ENVIRONMENT_DIR}\强制关闭本机所有采集.bat"
File "/oname=$INSTDIR\Plugin\Dalsa库剔除.bat" \
"${RUN_ENVIRONMENT_DIR}\Dalsa库剔除.bat"
; File "/oname=$INSTDIR\Plugin\Basler库剔除.bat" \
; "${RUN_ENVIRONMENT_DIR}\Basler库剔除.bat"
ExecWait "$INSTDIR\BUS.RegisterPC.exe"
; CreateDirectory "$INSTDIR\RTM_Version"
; File "/oname=$INSTDIR\RTM_Version\version.txt" \
; "${RTM_VERSION_DIR}\version.txt"
; Write the installation path into the registry
WriteRegStr HKLM SOFTWARE\${INSTALL_NAME} "$INSTDIR" "$INSTDIR"
; Write the uninstall keys for Windows
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${INSTALL_NAME}" "DisplayName" "${INSTALL_NAME}"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${INSTALL_NAME}" "UninstallString" '"$INSTDIR\uninstall.exe"'
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${INSTALL_NAME}" "NoModify" 1
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${INSTALL_NAME}" "NoRepair" 1
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${INSTALL_NAME}" "Publisher" "ZOYON"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${INSTALL_NAME}" "DisplayVersion" "${VERSION_NUM}"
WriteUninstaller "$INSTDIR\Uninstall.exe"
SectionEnd
Section "采集XML配置文件"
SetOutPath "$INSTDIR"
File /nonfatal /r "${RTM_CAPTURE_XML}\*.*"
SectionEnd
Section "通道查看工具"
SetOutPath "$INSTDIR\ChannelShow"
File /nonfatal /r "${RTM_CHANNEL_SHOW_DIR}\*.*"
CreateShortCut "$DESKTOP\通道查看器.lnk" $INSTDIR\ChannelShow\ChannelDataShow.exe "" \
"$INSTDIR\ChannelShow\ChannelDataShow.exe" 0 SW_SHOWNORMAL "" "采集卡通道查看工具。"
SectionEnd
Section "Uninstall"
; 卸载前停止服务和进程
Call un.StopService
Call un.StopProcess
RMDir /r /REBOOTOK "$INSTDIR"
Delete "$SMSTARTUP\Web.Master.lnk"
Delete "$SMSTARTUP\NavExe.lnk"
Delete "$DESKTOP\切分工具.lnk"
Delete "$DESKTOP\RTM配置.lnk"
Delete "$DESKTOP\通道查看器.lnk"
Delete "$DESKTOP\Web.Master.lnk"
Delete "$STARTMENU\Web.Master.lnk"
Delete "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp\Web.Master.lnk"
Delete "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp\NavExe.lnk"
Delete "$STARTMENU\Web.Master.lnk"
Delete "$STARTMENU\NavExe.lnk"
Delete "$DESKTOP\ZyFrame.lnk"
Delete "$DESKTOP\ZyMain.lnk"
Delete "$INSTDIR\Uninstall.exe"
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${INSTALL_NAME}"
DeleteRegKey HKLM SOFTWARE\${INSTALL_NAME}
SectionEnd