Some checks failed
Build & Release / 🏗️ Windows Build (push) Has been cancelled
- WebView2 Bootstrapper wird mitgeliefert - Automatische Prüfung ob WebView2 installiert ist - Silent Install wenn nicht vorhanden - Version + Publisher in Registry
114 lines
4.4 KiB
NSIS
114 lines
4.4 KiB
NSIS
!include "MUI2.nsh"
|
|
|
|
; Allgemein
|
|
Name "Speiseplan"
|
|
OutFile "Speiseplan-Setup.exe"
|
|
InstallDir "$PROGRAMFILES\Speiseplan"
|
|
InstallDirRegKey HKLM "Software\Speiseplan" "Install_Dir"
|
|
RequestExecutionLevel admin
|
|
|
|
; UI
|
|
!define MUI_ICON "icon.ico"
|
|
!define MUI_UNICON "icon.ico"
|
|
!define MUI_ABORTWARNING
|
|
!define MUI_WELCOMEPAGE_TITLE "Speiseplan Setup"
|
|
!define MUI_WELCOMEPAGE_TEXT "Dieses Programm installiert den Kita-Wochenspeiseplan auf Ihrem Computer.$\r$\n$\r$\nBenötigte Komponenten (WebView2) werden automatisch mitinstalliert.$\r$\n$\r$\nKlicken Sie auf Weiter, um fortzufahren."
|
|
|
|
; Seiten
|
|
!insertmacro MUI_PAGE_WELCOME
|
|
!insertmacro MUI_PAGE_DIRECTORY
|
|
!insertmacro MUI_PAGE_COMPONENTS
|
|
!insertmacro MUI_PAGE_INSTFILES
|
|
!insertmacro MUI_PAGE_FINISH
|
|
|
|
; Deinstallation
|
|
!insertmacro MUI_UNPAGE_CONFIRM
|
|
!insertmacro MUI_UNPAGE_INSTFILES
|
|
|
|
; Sprache
|
|
!insertmacro MUI_LANGUAGE "German"
|
|
|
|
; WebView2 Check Funktion
|
|
Function CheckWebView2
|
|
; Prüfe ob WebView2 bereits installiert ist
|
|
ReadRegStr $0 HKLM "SOFTWARE\WOW6432Node\Microsoft\EdgeUpdate\Clients\{F3017226-FE2A-4295-8BDF-00C3A9A7E4C5}" "pv"
|
|
${If} $0 == ""
|
|
ReadRegStr $0 HKCU "SOFTWARE\Microsoft\EdgeUpdate\Clients\{F3017226-FE2A-4295-8BDF-00C3A9A7E4C5}" "pv"
|
|
${EndIf}
|
|
${If} $0 == ""
|
|
; WebView2 nicht gefunden — installieren
|
|
DetailPrint "WebView2 Runtime wird installiert..."
|
|
SetOutPath "$TEMP"
|
|
File "MicrosoftEdgeWebview2Setup.exe"
|
|
ExecWait '"$TEMP\MicrosoftEdgeWebview2Setup.exe" /silent /install' $1
|
|
${If} $1 != 0
|
|
MessageBox MB_OK|MB_ICONEXCLAMATION "WebView2 konnte nicht installiert werden (Fehler: $1).$\r$\nBitte installieren Sie es manuell von https://developer.microsoft.com/microsoft-edge/webview2/"
|
|
${Else}
|
|
DetailPrint "WebView2 Runtime erfolgreich installiert."
|
|
${EndIf}
|
|
Delete "$TEMP\MicrosoftEdgeWebview2Setup.exe"
|
|
${Else}
|
|
DetailPrint "WebView2 Runtime bereits installiert (Version: $0)."
|
|
${EndIf}
|
|
FunctionEnd
|
|
|
|
; Hauptinstallation
|
|
Section "Speiseplan (erforderlich)" SecMain
|
|
SectionIn RO
|
|
SetOutPath $INSTDIR
|
|
File "..\..\build\bin\speiseplan.exe"
|
|
File "icon.ico"
|
|
|
|
; WebView2 prüfen und ggf. installieren
|
|
Call CheckWebView2
|
|
|
|
; Registry
|
|
WriteRegStr HKLM "Software\Speiseplan" "Install_Dir" "$INSTDIR"
|
|
WriteRegStr HKLM "Software\Speiseplan" "Version" "0.4.7"
|
|
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Speiseplan" "DisplayName" "Speiseplan"
|
|
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Speiseplan" "DisplayVersion" "0.4.7"
|
|
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Speiseplan" "Publisher" "Kita Ortrand"
|
|
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Speiseplan" "DisplayIcon" "$INSTDIR\icon.ico"
|
|
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Speiseplan" "UninstallString" '"$INSTDIR\uninstall.exe"'
|
|
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Speiseplan" "NoModify" 1
|
|
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Speiseplan" "NoRepair" 1
|
|
WriteUninstaller "$INSTDIR\uninstall.exe"
|
|
|
|
; Startmenü
|
|
CreateDirectory "$SMPROGRAMS\Speiseplan"
|
|
CreateShortCut "$SMPROGRAMS\Speiseplan\Speiseplan.lnk" "$INSTDIR\speiseplan.exe" "" "$INSTDIR\icon.ico"
|
|
CreateShortCut "$SMPROGRAMS\Speiseplan\Deinstallieren.lnk" "$INSTDIR\uninstall.exe"
|
|
SectionEnd
|
|
|
|
; Desktop-Verknüpfung (optional)
|
|
Section "Desktop-Verknüpfung" SecDesktop
|
|
CreateShortCut "$DESKTOP\Speiseplan.lnk" "$INSTDIR\speiseplan.exe" "" "$INSTDIR\icon.ico"
|
|
SectionEnd
|
|
|
|
; Komponentenbeschreibungen
|
|
!insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
|
|
!insertmacro MUI_DESCRIPTION_TEXT ${SecMain} "Das Speiseplan-Programm (erforderlich). WebView2 wird automatisch mitinstalliert."
|
|
!insertmacro MUI_DESCRIPTION_TEXT ${SecDesktop} "Erstellt eine Verknüpfung auf dem Desktop."
|
|
!insertmacro MUI_FUNCTION_DESCRIPTION_END
|
|
|
|
; Deinstallation
|
|
Section "Uninstall"
|
|
Delete "$INSTDIR\speiseplan.exe"
|
|
Delete "$INSTDIR\icon.ico"
|
|
Delete "$INSTDIR\uninstall.exe"
|
|
RMDir "$INSTDIR"
|
|
|
|
Delete "$SMPROGRAMS\Speiseplan\*.*"
|
|
RMDir "$SMPROGRAMS\Speiseplan"
|
|
Delete "$DESKTOP\Speiseplan.lnk"
|
|
|
|
; Datenbank löschen
|
|
MessageBox MB_YESNO "Sollen die gespeicherten Daten (Speisepläne, Produkte) ebenfalls gelöscht werden?" IDYES deletedata IDNO skipdata
|
|
deletedata:
|
|
RMDir /r "$LOCALAPPDATA\Speiseplan"
|
|
skipdata:
|
|
|
|
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\Speiseplan"
|
|
DeleteRegKey HKLM "Software\Speiseplan"
|
|
SectionEnd
|