nsis 反应包

一些有用的反应库

React_date_picker.sh
#https://www.npmjs.com/package/react-date-picker\
npm i react-date-picker

nsis Installer.nsi

Installer.nsi

Name "DevEG 1.0"
OutFile "DevEG.exe"
SetCompressor /SOLID lzma
InstallDir "C:\Program Files\DevEG" ; 一定要寫死
RequestExecutionLevel admin

Page components
Page instfiles
UninstPage uninstConfirm
UninstPage instfiles
LoadLanguageFile "${NSISDIR}\Contrib\Language files\TradChinese.nlf"
XPStyle on

Section "DevEG 1.0"
	SectionIn RO
	SetOutPath $INSTDIR
	File "DevEG\dev.bat"
	File "Icon\dll\icon.dll"
	; 支援 MinGW 的部份
	SetOutPath $INSTDIR\MinGW
	File /r "DevEG\MinGW\*.bat"
	SetOutPath $INSTDIR
	File "DevEG\ext.c.bat"
	File "DevEG\ext.cpp.bat"
SectionEnd

Section "EmEditor Free 6.00.4"
	SectionIn RO
	SetOutPath "$TEMP\DevEG"
	File "EmEditor\EmEditor.msi"
	File "EmEditor\EmEditor_zh-tw.msi"
	File "EmEditor\EmEditor.reg"
	ExecWait "msiexec /i $TEMP\DevEG\EmEditor.msi /Quiet"
	ExecWait "msiexec /i $TEMP\DevEG\EmEditor_zh-tw.msi /Quiet"
	ExecWait "regedit /s $TEMP\DevEG\EmEditor.reg"
	; 若使用 reg 指令會有命令提示字元的視窗出現,
	; 故使用 regedit /s file.reg
	; http://support.microsoft.com/kb/310516
	RMDir /r "$TEMP\DevEG"
SectionEnd

Section "MinGW (GCC 3.4.5-3)"
	SectionIn RO
	SetOutPath "C:\MinGW"
	File /r "MinGW\*"
SectionEnd

!define ARP "Software\Microsoft\Windows\CurrentVersion\Uninstall\DevEG"

Section
	WriteUninstaller "$INSTDIR\uninstall.exe"
	; http://nsis.sourceforge.net/Add_uninstall_information_to_Add/Remove_Programs
	WriteRegStr HKLM ${ARP} "DisplayName" "DevEG 1.0"
	WriteRegStr HKLM ${ARP} "UninstallString" "$\"$INSTDIR\uninstall.exe$\""
	WriteRegStr HKLM ${ARP} "QuietUninstallString" "$\"$INSTDIR\uninstall.exe$\" /S"
	; EstimatedSize 的設定似乎沒有作用…
SectionEnd

Section "Uninstall"
	RMDir /r "C:\MinGW"
	ExecWait "msiexec /x {1FB0A2C0-72AB-48D7-8C5E-14B87CF814F9} /Quiet" ; EmEditor_zh-tw
	ExecWait "msiexec /x {94E1E0C4-C655-4D4E-A4E1-6674B63A18F1} /Quiet" ; EmEditor
	RMDir /r "$INSTDIR" ; 含 uninstall.exe
	DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\DevEG"
SectionEnd