2009-02-09 113 views

回答

1

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

的基本思路是:

  1. 编译一个单独脚本,在你的主脚本生成可执行
  2. 运行可执行文件(通过!system,在编译的时候) - 和这会产生一个文本文件(!define小号无论你需要)
  3. !include在主脚本的文本文件

and presto!你已经在编译时在脚本中生成了一些东西。

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

+0

我实际上更喜欢我引用的文章中的想法(与您的文章几乎相同),因为在关联的脚本(写入!定义等)中完成了艰苦的工作,而不是必须解析您需要的内容主要剧本。 – 2009-02-09 08:44:47