OnTopReplica/Installer/script.nsi
2013-05-03 18:16:42 +02:00

141 lines
4.8 KiB
Plaintext

# INCLUDES
!include MUI2.nsh ;Modern interface
!include LogicLib.nsh ;nsDialogs
!include "DotNet.nsh"
# INIT
Name "OnTopReplica"
InstallDir "$LOCALAPPDATA\OnTopReplica"
OutFile "OnTopReplica-Setup.exe"
RequestExecutionLevel user
# REFS
!define REG_UNINSTALL "Software\Microsoft\Windows\CurrentVersion\Uninstall\OnTopReplica"
!define START_LINK_DIR "$STARTMENU\Programs\OnTopReplica"
!define START_LINK_RUN "$STARTMENU\Programs\OnTopReplica\OnTopReplica.lnk"
!define START_LINK_UNINSTALLER "$STARTMENU\Programs\OnTopReplica\Uninstall OnTopReplica.lnk"
!define UNINSTALLER_NAME "OnTopReplica-Uninstall.exe"
!define WEBSITE_LINK "http://www.klopfenstein.net/lorenz.aspx/ontopreplica"
# GRAPHICS
!define MUI_ICON "..\OnTopReplica\Assets\icon-new.ico"
!define MUI_UNICON "..\OnTopReplica\Assets\icon-new-red.ico"
!define MUI_HEADERIMAGE
!define MUI_HEADERIMAGE_RIGHT
!define MUI_HEADERIMAGE_BITMAP "header.bmp"
!define MUI_HEADERIMAGE_UNBITMAP "header.bmp"
#!define MUI_WELCOMEFINISHPAGE_BITMAP "banner.bmp"
#!define MUI_UNWELCOMEFINISHPAGE_BITMAP "banner.bmp"
# TEXT AND SETTINGS
!define MUI_PAGE_HEADER_TEXT "OnTopReplica"
!define MUI_FINISHPAGE_RUN "$INSTDIR\OnTopReplica.exe"
;!define MUI_FINISHPAGE_RUN_TEXT "Run OnTopReplica now."
;Do not skip to finish automatially
!define MUI_FINISHPAGE_NOAUTOCLOSE
!define MUI_UNFINISHPAGE_NOAUTOCLOSE
# PAGE DEFINITIONS
!insertmacro MUI_PAGE_WELCOME
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH
!insertmacro MUI_UNPAGE_CONFIRM
!insertmacro MUI_UNPAGE_INSTFILES
# LANGUAGES
!insertmacro MUI_LANGUAGE "English"
# INITIALIZATION AND ERROR CHECKING
Function .onInit
${HasDotNet4} $R0
${If} $R0 == 1
;noop
${Else}
MessageBox MB_OKCANCEL|MB_ICONEXCLAMATION "Microsoft .NET Framework 4.0 appears not to be installed.$\n$\nOnTopReplica requires .NET 4.0 to run: please install it before running the installer.$\n$\nDo you wish to proceed anyway?" IDOK proceedAnyway
Abort ".NET 4.0 required to install"
proceedAnyway:
${EndIf}
FunctionEnd
# CALLBACKS
Function RegisterApplication
;Register uninstaller into Add/Remove panel (for local user only)
WriteRegStr HKCU "${REG_UNINSTALL}" "DisplayName" "OnTopReplica"
WriteRegStr HKCU "${REG_UNINSTALL}" "DisplayIcon" "$\"$INSTDIR\OnTopReplica.exe$\""
WriteRegStr HKCU "${REG_UNINSTALL}" "Publisher" "Lorenz Cuno Klopfenstein"
WriteRegStr HKCU "${REG_UNINSTALL}" "DisplayVersion" "3.4"
WriteRegDWord HKCU "${REG_UNINSTALL}" "EstimatedSize" 992 ;KB
WriteRegStr HKCU "${REG_UNINSTALL}" "HelpLink" "${WEBSITE_LINK}"
WriteRegStr HKCU "${REG_UNINSTALL}" "URLInfoAbout" "${WEBSITE_LINK}"
WriteRegStr HKCU "${REG_UNINSTALL}" "InstallLocation" "$\"$INSTDIR$\""
WriteRegStr HKCU "${REG_UNINSTALL}" "InstallSource" "$\"$EXEDIR$\""
WriteRegDWord HKCU "${REG_UNINSTALL}" "NoModify" 1
WriteRegDWord HKCU "${REG_UNINSTALL}" "NoRepair" 1
WriteRegStr HKCU "${REG_UNINSTALL}" "UninstallString" "$\"$INSTDIR\${UNINSTALLER_NAME}$\""
WriteRegStr HKCU "${REG_UNINSTALL}" "Comments" "Uninstalls OnTopReplica."
;Links
SetShellVarContext current
CreateDirectory "${START_LINK_DIR}"
CreateShortCut "${START_LINK_RUN}" "$INSTDIR\OnTopReplica.exe"
CreateShortCut "${START_LINK_UNINSTALLER}" "$INSTDIR\${UNINSTALLER_NAME}"
FunctionEnd
Function un.DeregisterApplication
;Deregister uninstaller from Add/Remove panel
DeleteRegKey HKCU "${REG_UNINSTALL}"
;Start menu links
SetShellVarContext current
RMDir /r "${START_LINK_DIR}"
FunctionEnd
# INSTALL SECTIONS
Section "!OnTopReplica" OnTopReplica
SectionIn RO
SetOutPath $INSTDIR
SetOverwrite on
;Ensure that old VistaControls.dll is removed
Delete "$INSTDIR\VistaControls.dll"
;Main installation
File "..\OnTopReplica\bin\Release\OnTopReplica.exe"
File "..\OnTopReplica\bin\Release\OnTopReplica.exe.config"
File "..\OnTopReplica\bin\Release\WindowsFormsAero.dll"
;Text stuff
File "..\OnTopReplica\bin\Release\CREDITS.txt"
File "..\OnTopReplica\bin\Release\LICENSE.txt"
;Install localization files
SetOutPath "$INSTDIR\it"
File "..\OnTopReplica\bin\Release\it\OnTopReplica.resources.dll"
SetOutPath "$INSTDIR\cs"
File "..\OnTopReplica\bin\Release\cs\OnTopReplica.resources.dll"
SetOutPath "$INSTDIR\da"
File "..\OnTopReplica\bin\Release\da\OnTopReplica.resources.dll"
SetOutPath "$INSTDIR\de"
File "..\OnTopReplica\bin\Release\de\OnTopReplica.resources.dll"
SetOutPath "$INSTDIR\es"
File "..\OnTopReplica\bin\Release\es\OnTopReplica.resources.dll"
SetOutPath "$INSTDIR\pl"
File "..\OnTopReplica\bin\Release\pl\OnTopReplica.resources.dll"
;Uninstaller
WriteUninstaller "$INSTDIR\${UNINSTALLER_NAME}"
Call RegisterApplication
SectionEnd
Section "Uninstall"
;Remove whole directory (no data is stored there anyway)
RMDir /r "$INSTDIR"
;Remove uninstaller
Call un.DeregisterApplication
SectionEnd