如何在编译脚本时调用NSIS中的函数?

时间:2009-02-09 07:48:41

标签: installer nsis

我想在我的NSIS脚本编译时调用一个函数(计算我的版本号),但是在执行时却不行。这可能吗?它使用nsExec和基本的字符串操作函数。

2 个答案:

答案 0 :(得分:2)

你可以这样做:

!system '"calculate_version.exe" "tempfile.tmp"'
!searchparse /file "tempfile.tmp" `APP_VERSION=` APPVERSION

这是做什么的:调用calculate_version.exe(这可能是一个调用你的函数的简单NSIS脚本)。此可执行文件应将版本号输出到tempfile.tmp。版本的格式无关紧要;在这个例子中,我选择了“APP_VERSION = something”(这可以使用WriteINIStr编写)。

在下一行中,我们打开临时文件并搜索我们编写的行;然后我们将$ {APPVERSION}设置为我们在那里找到的任何东西。

答案 1 :(得分:1)

甜!有可能:见http://nsis.sourceforge.net/Invoking_NSIS_run-time_commands_on_compile-time

基本理念是:

  1. 编译生成可执行文件的单独脚本
  2. 在主脚本中运行可执行文件(通过!system,在编译时) - 这将生成一个文本文件(!define s,无论您需要什么)
  3. !include主脚本中的文本文件
  4. 和presto!你在脚本编译时生成了一些东西。