mirror of
https://github.com/rustdesk/rustdesk.git
synced 2024-11-27 14:59:02 +08:00
Replace InnoSetup with improved NSIS Setup
This commit is contained in:
parent
6f8483ece6
commit
5383c09e3d
56
setup.iss
56
setup.iss
@ -1,56 +0,0 @@
|
||||
; Script generated by the Inno Script Studio Wizard.
|
||||
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
|
||||
|
||||
#define MyAppName "RustDesk"
|
||||
#define MyAppVersion "1.1.5"
|
||||
#define MyAppPublisher "Carriez, Inc."
|
||||
#define MyAppURL "https://www.rustdesk.com/"
|
||||
#define MyAppExeName "RustDesk.exe"
|
||||
#define MyAppExe ".\RustDesk.exe"
|
||||
|
||||
[Setup]
|
||||
; NOTE: The value of AppId uniquely identifies this application.
|
||||
; Do not use the same AppId value in installers for other applications.
|
||||
; (To generate a new GUID, click Tools | Generate GUID inside the IDE.)
|
||||
AppId={{54E86BC2-6C85-41F3-A9EB-1A94AC9B1F93}
|
||||
AppName={#MyAppName}
|
||||
AppVersion={#MyAppVersion}
|
||||
;AppVerName={#MyAppName} {#MyAppVersion}
|
||||
AppPublisher={#MyAppPublisher}
|
||||
AppPublisherURL={#MyAppURL}
|
||||
AppSupportURL={#MyAppURL}
|
||||
AppUpdatesURL={#MyAppURL}
|
||||
DefaultDirName={pf}\{#MyAppName}
|
||||
DisableDirPage=yes
|
||||
DefaultGroupName={#MyAppName}
|
||||
OutputBaseFilename=setup
|
||||
Compression=lzma
|
||||
SolidCompression=yes
|
||||
ArchitecturesInstallIn64BitMode=x64
|
||||
UninstallDisplayIcon={app}\{#MyAppExeName}
|
||||
|
||||
[Languages]
|
||||
Name: "english"; MessagesFile: "compiler:Default.isl"
|
||||
|
||||
[Tasks]
|
||||
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
|
||||
|
||||
[Files]
|
||||
Source: "{#MyAppExe}"; DestDir: "{app}"; Flags: ignoreversion
|
||||
; NOTE: Don't use "Flags: ignoreversion" on any shared system files
|
||||
|
||||
[Icons]
|
||||
Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"
|
||||
Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon
|
||||
Name: "{commonstartup}\{#MyAppName} Tray"; Filename: "{app}\{#MyAppExeName}"; Parameters: "--tray";
|
||||
|
||||
[Run]
|
||||
Filename: "sc.exe"; Parameters: "create {#MyAppName} start= auto DisplayName= ""{#MyAppName} Service"" binPath= ""\""{app}\{#MyAppExeName}\"" --service"""; Flags: runhidden
|
||||
Filename: "netsh.exe"; Parameters: "advfirewall firewall add rule name=""{#MyAppName} Service"" dir=in action=allow program=""{app}\{#MyAppExeName}"" enable=yes"; Flags: runhidden
|
||||
Filename: "sc.exe"; Parameters: "start {#MyAppName}" ; Flags: runhidden
|
||||
|
||||
[UninstallRun]
|
||||
Filename: "sc.exe"; Parameters: "stop {#MyAppName}" ; Flags: runhidden
|
||||
Filename: "sc.exe"; Parameters: "delete {#MyAppName}" ; Flags: runhidden
|
||||
Filename: "netsh.exe"; Parameters: "advfirewall firewall delete rule name=""{#MyAppName} Service"""; Flags: runhidden
|
||||
|
112
setup.nsi
Normal file
112
setup.nsi
Normal file
@ -0,0 +1,112 @@
|
||||
Unicode true
|
||||
|
||||
####################################################################
|
||||
# Includes
|
||||
|
||||
!include nsDialogs.nsh
|
||||
!include MUI2.nsh
|
||||
!include x64.nsh
|
||||
!include LogicLib.nsh
|
||||
|
||||
####################################################################
|
||||
# File Info
|
||||
|
||||
!define PRODUCT_NAME "RustDesk"
|
||||
!define PRODUCT_DESCRIPTION "Installer for ${PRODUCT_NAME}"
|
||||
!define COPYRIGHT "Copyright © 2021"
|
||||
!define VERSION "1.1.6"
|
||||
|
||||
VIProductVersion "${VERSION}.0"
|
||||
VIAddVersionKey "ProductName" "${PRODUCT_NAME}"
|
||||
VIAddVersionKey "ProductVersion" "${VERSION}"
|
||||
VIAddVersionKey "FileDescription" "${PRODUCT_DESCRIPTION}"
|
||||
VIAddVersionKey "LegalCopyright" "${COPYRIGHT}"
|
||||
VIAddVersionKey "FileVersion" "${VERSION}.0"
|
||||
|
||||
####################################################################
|
||||
# Installer Attributes
|
||||
|
||||
Name "${PRODUCT_NAME}"
|
||||
Outfile "rustdesk-${VERSION}-setup.exe"
|
||||
Caption "Setup - ${PRODUCT_NAME}"
|
||||
BrandingText "${PRODUCT_NAME}"
|
||||
|
||||
ShowInstDetails show
|
||||
RequestExecutionLevel admin
|
||||
SetOverwrite on
|
||||
|
||||
InstallDir "$PROGRAMFILES64\${PRODUCT_NAME}"
|
||||
|
||||
####################################################################
|
||||
# Pages
|
||||
|
||||
!define MUI_ICON "src\tray-icon.ico"
|
||||
!define MUI_ABORTWARNING
|
||||
!define MUI_LANGDLL_ALLLANGUAGES
|
||||
!define MUI_FINISHPAGE_SHOWREADME ""
|
||||
!define MUI_FINISHPAGE_SHOWREADME_NOTCHECKED
|
||||
!define MUI_FINISHPAGE_SHOWREADME_TEXT "Create Desktop Shortcut"
|
||||
!define MUI_FINISHPAGE_SHOWREADME_FUNCTION CreateDesktopShortcut
|
||||
!define MUI_FINISHPAGE_RUN "$INSTDIR\${PRODUCT_NAME}.exe"
|
||||
|
||||
!insertmacro MUI_PAGE_DIRECTORY
|
||||
!insertmacro MUI_PAGE_INSTFILES
|
||||
!insertmacro MUI_PAGE_FINISH
|
||||
|
||||
####################################################################
|
||||
# Language
|
||||
|
||||
!insertmacro MUI_LANGUAGE "English"
|
||||
!insertmacro MUI_LANGUAGE "SimpChinese"
|
||||
|
||||
####################################################################
|
||||
# Sections
|
||||
|
||||
Section "Install"
|
||||
SetOutPath $INSTDIR
|
||||
|
||||
# Regkeys
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" "DisplayIcon" "$INSTDIR\${PRODUCT_NAME}.exe"
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" "DisplayName" "${PRODUCT_NAME} (x64)"
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" "DisplayVersion" "${VERSION}"
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" "UninstallString" '"$INSTDIR\${PRODUCT_NAME}.exe" --uninstall'
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" "InstallLocation" "$INSTDIR"
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" "Publisher" "Carriez, Inc."
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" "HelpLink" "https://www.rustdesk.com/"
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" "URLInfoAbout" "https://www.rustdesk.com/"
|
||||
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${PRODUCT_NAME}" "URLUpdateInfo" "https://www.rustdesk.com/"
|
||||
|
||||
nsExec::Exec "taskkill /F /IM ${PRODUCT_NAME}.exe"
|
||||
Sleep 500 ; Give time for process to be completely killed
|
||||
File "${PRODUCT_NAME}.exe"
|
||||
|
||||
SetShellVarContext all
|
||||
CreateShortCut "$INSTDIR\Uninstall ${PRODUCT_NAME}.lnk" "$INSTDIR\${PRODUCT_NAME}.exe" "--uninstall" "msiexec.exe"
|
||||
CreateDirectory "$SMPROGRAMS\${PRODUCT_NAME}"
|
||||
CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\${PRODUCT_NAME}.lnk" "$INSTDIR\${PRODUCT_NAME}.exe"
|
||||
CreateShortCut "$SMPROGRAMS\${PRODUCT_NAME}\Uninstall ${PRODUCT_NAME}.lnk" "$INSTDIR\${PRODUCT_NAME}.exe" "--uninstall" "msiexec.exe"
|
||||
CreateShortCut "$SMSTARTUP\${PRODUCT_NAME} Tray.lnk" "$INSTDIR\${PRODUCT_NAME}.exe" "--tray"
|
||||
|
||||
nsExec::Exec 'sc create ${PRODUCT_NAME} start=auto DisplayName="${PRODUCT_NAME} Service" binPath= "\"$INSTDIR\${PRODUCT_NAME}.exe\" --service"'
|
||||
nsExec::Exec 'netsh advfirewall firewall add rule name="${PRODUCT_NAME} Service" dir=in action=allow program="$INSTDIR\${PRODUCT_NAME}.exe" enable=yes'
|
||||
nsExec::Exec 'sc start ${PRODUCT_NAME}'
|
||||
SectionEnd
|
||||
|
||||
####################################################################
|
||||
# Functions
|
||||
|
||||
Function .onInit
|
||||
# RustDesk is 64-bit only
|
||||
${IfNot} ${RunningX64}
|
||||
MessageBox MB_ICONSTOP "${PRODUCT_NAME} is 64-bit only!"
|
||||
Quit
|
||||
${EndIf}
|
||||
${DisableX64FSRedirection}
|
||||
SetRegView 64
|
||||
|
||||
!insertmacro MUI_LANGDLL_DISPLAY
|
||||
FunctionEnd
|
||||
|
||||
Function CreateDesktopShortcut
|
||||
CreateShortCut "$DESKTOP\${PRODUCT_NAME}.lnk" "$INSTDIR\${PRODUCT_NAME}.exe"
|
||||
FunctionEnd
|
Loading…
Reference in New Issue
Block a user