我想在我的 NSIS 脚本编译时调用一个函数(它计算我的版本号),而不是在它执行时。这可能吗?它使用nsExec
和基本的字符串操作函数。
Jesse Beder
问问题
1246 次
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
基本思想是:
- 编译生成可执行文件的单独脚本
- 在您的主脚本中运行可执行文件(通过
!system
,在编译时) - 这会生成一个文本文件(这!define
是您需要的任何内容) !include
主脚本中的文本文件
快!您的脚本在编译时生成了一些东西。
于 2009-02-09T08:06:37.893 回答