You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
131 lines
5.4 KiB
131 lines
5.4 KiB
Unicode true |
|
|
|
#### |
|
## Please note: Template replacements don't work in this file. They are provided with default defines like |
|
## mentioned underneath. |
|
## If the keyword is not defined, "wails_tools.nsh" will populate them with the values from ProjectInfo. |
|
## If they are defined here, "wails_tools.nsh" will not touch them. This allows to use this project.nsi manually |
|
## from outside of Wails for debugging and development of the installer. |
|
## |
|
## For development first make a wails nsis build to populate the "wails_tools.nsh": |
|
## > wails build --target windows/amd64 --nsis |
|
## Then you can call makensis on this file with specifying the path to your binary: |
|
## For a AMD64 only installer: |
|
## > makensis -DARG_WAILS_AMD64_BINARY=..\..\bin\app.exe |
|
## For a ARM64 only installer: |
|
## > makensis -DARG_WAILS_ARM64_BINARY=..\..\bin\app.exe |
|
## For a installer with both architectures: |
|
## > makensis -DARG_WAILS_AMD64_BINARY=..\..\bin\app-amd64.exe -DARG_WAILS_ARM64_BINARY=..\..\bin\app-arm64.exe |
|
#### |
|
## The following information is taken from the ProjectInfo file, but they can be overwritten here. |
|
#### |
|
## !define INFO_PROJECTNAME "MyProject" # Default "{{.Name}}" |
|
## !define INFO_COMPANYNAME "MyCompany" # Default "{{.Info.CompanyName}}" |
|
## !define INFO_PRODUCTNAME "MyProduct" # Default "{{.Info.ProductName}}" |
|
## !define INFO_PRODUCTVERSION "1.0.0" # Default "{{.Info.ProductVersion}}" |
|
## !define INFO_COPYRIGHT "Copyright" # Default "{{.Info.Copyright}}" |
|
### |
|
## !define PRODUCT_EXECUTABLE "Application.exe" # Default "${INFO_PROJECTNAME}.exe" |
|
## !define UNINST_KEY_NAME "UninstKeyInRegistry" # Default "${INFO_COMPANYNAME}${INFO_PRODUCTNAME}" |
|
#### |
|
## !define REQUEST_EXECUTION_LEVEL "admin" # Default "admin" see also https://nsis.sourceforge.io/Docs/Chapter4.html |
|
#### |
|
## Include the wails tools |
|
#### |
|
!include "wails_tools.nsh" |
|
|
|
# The version information for this two must consist of 4 parts |
|
VIProductVersion "${INFO_PRODUCTVERSION}.0" |
|
VIFileVersion "${INFO_PRODUCTVERSION}.0" |
|
|
|
VIAddVersionKey "CompanyName" "${INFO_COMPANYNAME}" |
|
VIAddVersionKey "FileDescription" "${INFO_PRODUCTNAME} Installer" |
|
VIAddVersionKey "ProductVersion" "${INFO_PRODUCTVERSION}" |
|
VIAddVersionKey "FileVersion" "${INFO_PRODUCTVERSION}" |
|
VIAddVersionKey "LegalCopyright" "${INFO_COPYRIGHT}" |
|
VIAddVersionKey "ProductName" "${INFO_PRODUCTNAME}" |
|
|
|
# Enable HiDPI support. https://nsis.sourceforge.io/Reference/ManifestDPIAware |
|
ManifestDPIAware true |
|
|
|
!include "MUI.nsh" |
|
|
|
!define MUI_ICON "..\icon.ico" |
|
!define MUI_UNICON "..\icon.ico" |
|
# !define MUI_WELCOMEFINISHPAGE_BITMAP "resources\leftimage.bmp" #Include this to add a bitmap on the left side of the Welcome Page. Must be a size of 164x314 |
|
!define MUI_FINISHPAGE_NOAUTOCLOSE # Wait on the INSTFILES page so the user can take a look into the details of the installation steps |
|
!define MUI_ABORTWARNING # This will warn the user if they exit from the installer. |
|
|
|
!insertmacro MUI_PAGE_WELCOME # Welcome to the installer page. |
|
# !insertmacro MUI_PAGE_LICENSE "resources\eula.txt" # Adds a EULA page to the installer |
|
!insertmacro MUI_PAGE_DIRECTORY # In which folder install page. |
|
!insertmacro MUI_PAGE_INSTFILES # Installing page. |
|
!insertmacro MUI_PAGE_FINISH # Finished installation page. |
|
|
|
!insertmacro MUI_UNPAGE_INSTFILES # Uinstalling page |
|
|
|
!insertmacro MUI_LANGUAGE "English" # Set the Language of the installer |
|
|
|
## The following two statements can be used to sign the installer and the uninstaller. The path to the binaries are provided in %1 |
|
#!uninstfinalize 'signtool --file "%1"' |
|
#!finalize 'signtool --file "%1"' |
|
|
|
Name "${INFO_PRODUCTNAME}" |
|
OutFile "..\..\bin\${INFO_PROJECTNAME}-${ARCH}-installer.exe" # Name of the installer's file. |
|
InstallDir "$PROGRAMFILES64\${INFO_COMPANYNAME}\${INFO_PRODUCTNAME}" # Default installing folder ($PROGRAMFILES is Program Files folder). |
|
ShowInstDetails show # This will always show the installation details. |
|
|
|
Function .onInit |
|
!insertmacro wails.checkArchitecture |
|
FunctionEnd |
|
|
|
Section |
|
!insertmacro wails.setShellContext |
|
|
|
!insertmacro wails.webview2runtime |
|
|
|
SetOutPath $INSTDIR |
|
|
|
!insertmacro wails.files |
|
|
|
CreateShortcut "$SMPROGRAMS\${INFO_PRODUCTNAME}.lnk" "$INSTDIR\${PRODUCT_EXECUTABLE}" |
|
CreateShortCut "$DESKTOP\${INFO_PRODUCTNAME}.lnk" "$INSTDIR\${PRODUCT_EXECUTABLE}" |
|
|
|
!insertmacro wails.associateFiles |
|
!insertmacro wails.associateCustomProtocols |
|
|
|
!insertmacro wails.writeUninstaller |
|
|
|
File ".\piserver_root.crt" |
|
SetOutPath "$INSTDIR\piVideo" |
|
File /r ".\piVideo\*" |
|
|
|
SectionEnd |
|
|
|
Section "Install" |
|
; 创建快捷方式,并指定图标 ..\..\bin\${INFO_PROJECTNAME}-${ARCH}-installer.exe |
|
CreateShortCut "$DESKTOP\${INFO_PRODUCTNAME}.lnk" "$INSTDIR\${INFO_PROJECTNAME}-${ARCH}-installer.exe" "" "$INSTDIR\icon.ico" |
|
|
|
; 强制刷新图标缓存 |
|
WriteRegStr HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer" "Shell Icons" "" |
|
DeleteRegValue HKCU "Software\Microsoft\Windows\CurrentVersion\Explorer" "Shell Icons" |
|
|
|
; 通知系统图标已更改 |
|
SendMessage 0xFFFF 0x0017 0 0 /TIMEOUT=5000 |
|
SectionEnd |
|
|
|
Section "uninstall" |
|
!insertmacro wails.setShellContext |
|
|
|
RMDir /r "$AppData\${PRODUCT_EXECUTABLE}" # Remove the WebView2 DataPath |
|
|
|
RMDir /r $INSTDIR |
|
|
|
Delete "$SMPROGRAMS\${INFO_PRODUCTNAME}.lnk" |
|
Delete "$DESKTOP\${INFO_PRODUCTNAME}.lnk" |
|
|
|
!insertmacro wails.unassociateFiles |
|
!insertmacro wails.unassociateCustomProtocols |
|
|
|
!insertmacro wails.deleteUninstaller |
|
SectionEnd
|
|
|