1

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

4

2 回答 2

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} 设置为我们在那里找到的任何内容。

于 2009-02-09T08:07:06.660 回答
1

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

基本思想是:

  1. 编译生成可执行文件的单独脚本
  2. 在您的主脚本中运行可执行文件(通过!system,在编译时) - 这会生成一个文本文件(这!define是您需要的任何内容)
  3. !include主脚本中的文本文件

快!您的脚本在编译时生成了一些东西。

于 2009-02-09T08:06:37.893 回答