Nullsoft InstallDir无效参数

时间:2016-04-20 21:05:18

标签: installation windows-installer install installer nsis

这是我第一次使用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个,但我不知道我之前在谈论这个问题。游戏。

1 个答案:

答案 0 :(得分:3)

是的,如果存在,编译器将删除外部引号集,因此在预处理后,InstallDir指令最终为<div id="set-1"> <div>Name1</div> <div>Name2</div> <div>Name3</div> <div>Name4</div> </div> <div id="set-2"> <div>Name5</div> <div>Name6</div> <div>Name7</div> <div>Name8</div> </div> //and so on......

要修复它,只需引用InstallDir参数:

InstallDir C:\Code32\My Prog\SW-00134-00\