2011-11-30 57 views
5

我想通过外部传递版本号推广安装文件。我希望能够做到这一点:如何根据命令行参数条件编译NSIS脚本?

makensis myscript.nsi parameter=value 

,然后读了剧本中的参数,因此使用相同的脚本我可以生成不同版本的可执行文件。我发现this & this,但它们似乎是将命令行参数传递给生成的setup.exe。这是可能的,以及如何?

+0

看看这个答案http://stackoverflow.com/a/2790515/150166 –

+1

链接答案做你想做的。我不会投票结束这个问题,因为问题的标题和目标与您的问题有很大不同。 –

+0

@DavidHall:它有什么不同?安装程序名称是您只能在编译时设置的属性!目标是几乎相同... – Anders

回答

6

可以符号全局定义列表从command line使用/ d开关添加:

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