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}"