Ich versuche ein NSIS-Skript zu erstellen, das verschiedene Dateien an zwei verschiedene Stellen kopiert, die angegeben werden können. Ich habe die Dokumentation und andere StackOverflow-Einträge überprüft, finde aber keine Lösung. Mein Problem ist, dass ich eine zweite Variable für ein Verzeichnis definieren möchte. In diesem Verzeichnis sollen Beispieldateien und Projekte kopiert werden.! Define MUI_PAGE_DIRECTORY_VARIABLE erstellt keine Variable - NSIS
Beim Versuch, die NSI ich die folgenden Fehler/Warnungen zu kompilieren:
3 warnings:
unknown variable/constant "APPDIR" detected, ignoring (C:\Users\max\Desktop\PortablePlayer\so.nsi:29)
unknown variable/constant "APPDIR" detected, ignoring (C:\Users\max\Desktop\PortablePlayer\so.nsi:33)
unknown variable/constant "APPDIR\Testfile.txt" detected, ignoring (C:\Users\max\Desktop\PortablePlayer\so.nsi:43)
Hier ist mein Skript, das ich verwende:
!include "MUI.nsh"
Name "MyApp"
OutFile "MyApp-Installer.exe"
InstallDir "$PROGRAMFILES\My App"
; Installation Directory for the App
!insertmacro MUI_PAGE_DIRECTORY
; Installation Directory for the samples and projects
!define MUI_PAGE_HEADER_SUBTEXT "Choose your custom Samples Folder"
!define MUI_DIRECTORYPAGE_TEXT_TOP "To separate your App and your samples and projects you can choose a different folder than the installation directory"
!define MUI_PAGE_DIRECTORY_VARIABLE $APPDIR
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_PAGE_FINISH
!insertmacro MUI_UNPAGE_CONFIRM
!insertmacro MUI_UNPAGE_INSTFILES
!insertmacro MUI_LANGUAGE "English"
Section ""
SetOutPath $INSTDIR
File Testfile.txt
SetOutPath $APPDIR
File Testfile.txt
FileOpen $0 "$DESKTOP\Hello_world.txt" w
FileWrite $0 $APPDIR
FileClose $0
WriteUninstaller "$INSTDIR\MyApp-Uninstaller.exe"
SectionEnd
Section "Uninstall"
Delete "$INSTDIR\Testfile.txt"
Delete "$INSTDIR\MyApp-Uninstaller.exe"
RMDir $INSTDIR
Delete "$APPDIR\Testfile.txt"
SectionEnd
Zum Debuggen Ich habe versucht, den Wert zu schreiben von $ APPDIR in eine Textdatei, aber es schreibt nur $ APPDIR anstelle des Wertes. Wenn ich es zu $ INSTDIR ändere, druckt es den korrekten Pfad für $ INSTDIR. Wie kann ich die Variable für $ APPDIR initialisieren? Wenn ich versuche, es oben zu initialisieren, ist es dort aber leer, so dass das Installationsprogramm nach erfolgreicher Kompilierung des Skripts fehlschlägt.
Lauf Win 7 mit NSIS 2.5.1
Kann jemand bitte etwas Licht auf, was falsch ist?
Danke!
Ich hoffe, du meinst v2.51 und nicht v2.5.1 :) – Anders