【发布时间】:2016-04-22 11:42:01
【问题描述】:
我正在尝试创建一个 NSIS 脚本,它将各种文件复制到可以指定的两个不同位置。 我检查了文档和其他 StackOverflow 条目,但没有提出解决方案。 我的问题是我想为目录定义第二个变量。在此目录中复制示例文件和项目。
在尝试编译 NSI 时,我收到以下错误/警告:
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)
这是我正在使用的脚本:
!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
为了调试,我尝试将 $APPDIR 的值写入文本文件,但它只写入 $APPDIR 而不是值。 如果我将其更改为 $INSTDIR,它会打印 $INSTDIR 的正确路径。 如何初始化 $APPDIR 的变量? 如果我尝试在顶部初始化它,它在那里但为空,因此在成功编译脚本后安装程序失败。
使用 NSIS 2.5.1 运行 Win 7
有人能解释一下是什么问题吗?
谢谢!
【问题讨论】:
-
我希望你的意思是 v2.51 而不是 v2.5.1 :)
标签: nsis