Nullsoft InstallDir 参数无效
Nullsoft InstallDir invalid parameters
这是我第一次使用 NSIS,遇到了一些困难。
我想将我的程序安装在产品名称后跟版本号的目录下。所以我试了一下:
!define PRODUCT_NAME "My Prog"
!define SETUP_NAME "My Prog Setup"
!define PRODUCT_VERSION "SW-00134-00"
!define EXECUTABLE_NAME "MyProg.exe"
!define SHORTCUT_NAME "MyProg.lnk"
!define INSTALL_FOLDER "C:\Code32${PRODUCT_NAME}${PRODUCT_VERSION}\"
; The name of the installer
Name "${PRODUCT_NAME} ${PRODUCT_VERSION}"
; The file to write
OutFile "${SETUP_NAME} ${PRODUCT_VERSION}.exe"
; The default installation directory
InstallDir ${INSTALL_FOLDER}
但是,这会导致最后一行出现错误 InstallDir expects 1 parameters, got 3
。我假设是因为预处理器正在执行字符串替换,因此 InstallDir
看到 3 个参数而不是 1 个,但我不知道我在游戏早期谈论的是什么。
是的,如果存在,编译器会删除外部引号集,因此在预处理 InstallDir 指令后最终会成为 InstallDir C:\Code32\My Prog\SW-00134-00\
。
要修复它,只需引用 InstallDir 参数:
InstallDir "${INSTALL_FOLDER}"
这是我第一次使用 NSIS,遇到了一些困难。
我想将我的程序安装在产品名称后跟版本号的目录下。所以我试了一下:
!define PRODUCT_NAME "My Prog"
!define SETUP_NAME "My Prog Setup"
!define PRODUCT_VERSION "SW-00134-00"
!define EXECUTABLE_NAME "MyProg.exe"
!define SHORTCUT_NAME "MyProg.lnk"
!define INSTALL_FOLDER "C:\Code32${PRODUCT_NAME}${PRODUCT_VERSION}\"
; The name of the installer
Name "${PRODUCT_NAME} ${PRODUCT_VERSION}"
; The file to write
OutFile "${SETUP_NAME} ${PRODUCT_VERSION}.exe"
; The default installation directory
InstallDir ${INSTALL_FOLDER}
但是,这会导致最后一行出现错误 InstallDir expects 1 parameters, got 3
。我假设是因为预处理器正在执行字符串替换,因此 InstallDir
看到 3 个参数而不是 1 个,但我不知道我在游戏早期谈论的是什么。
是的,如果存在,编译器会删除外部引号集,因此在预处理 InstallDir 指令后最终会成为 InstallDir C:\Code32\My Prog\SW-00134-00\
。
要修复它,只需引用 InstallDir 参数:
InstallDir "${INSTALL_FOLDER}"