[英]!define MUI_PAGE_DIRECTORY_VARIABLE does not create variable - NSIS
我正在尝试创建一个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
有人可以告诉我们哪里出了问题吗?
谢谢!
MUI_DIRECTORYPAGE_VARIABLE
定义告诉MUI您有要使用的自定义变量,但MUI不会创建该变量,您必须在脚本顶部附近自己做:
Var APPDIR
所以它看起来应该像
Var APPDIR
!include "MUI.nsh"
!define MUI_DIRECTORYPAGE_VARIABLE $APPDIR
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
!insertmacro MUI_LANGUAGE "English"
Section
DetailPrint $APPDIR
SectionEnd
编辑:定义的名称是MUI_DIRECTORYPAGE_VARIABLE而不是MUI_PAGE_DIRECTORY_VARIABLE像您在示例中一样...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.