如何根据命令行参数有条件地编译NSIS脚本?

时间:2011-11-30 12:04:03

标签: nsis

我正在尝试通过外部传递版本号来概括设置文件。我希望能够做到这一点:

makensis myscript.nsi parameter=value

然后读取脚本中的参数,以便使用相同的脚本生成不同版本的可执行文件。我找到了this& this,但它们似乎是用于将命令行参数传递给生成的setup.exe。这有可能,怎么样?

1 个答案:

答案 0 :(得分:6)

您可以使用/ D开关从command line向全局定义的列表中添加符号:

makensis /DMyVersion="1.0.1" install.nsi

然后您可以使用$ {}语法来使用它们:

!ifdef MyVersion
    StrCpy $Version "${MyInstallerName}"
!else
    StrCpy $Version "1.0.0"
!endif

此SO问题中讨论的GetVersion插件也可能引起关注:NSIS - put EXE version into name of installer