【发布时间】:2012-02-17 21:31:34
【问题描述】:
我想在使用 NSIS 构建安装程序时自动捕获我的代码的 svn 版本。我看到我可以通过在命令行中调用“svnversion”来获取修订号,但是如何在构建时将其映射到我的 NSIS 脚本中的${define}?
【问题讨论】:
-
你用什么来构建的?南特?构建?斯康斯?
我想在使用 NSIS 构建安装程序时自动捕获我的代码的 svn 版本。我看到我可以通过在命令行中调用“svnversion”来获取修订号,但是如何在构建时将其映射到我的 NSIS 脚本中的${define}?
【问题讨论】:
您可以在编译时使用!system 执行任何命令,然后使用!searchparse、!define /file 或!include 获取/解析输出。
另一种选择是$Revision$svn keyword(更多信息请参阅this question)
【讨论】:
!tempfile "svnrev.txt" !appendfile "svnrev.txt" "!define SVN_REV " !system "svnversion ..\ >> svnrev.txt" !include "svnrev.txt" !delfile "svnrev.txt" DetailPrint ${SVN_REV}
如果您使用 Windows(不是吗?),您可以使用 TortoiseSVN 的 SubWCRev。
即:
示例(从我的项目模板中提取)
// (C) 2009-$WCDATE=%Y$
// Assembled from $WCDATE=%Y%m%d$-r$WCREV$
将在 SubWCRev 魔术之后出现在最终文件中(用于最后构建)
// (C) 2009-2012
// Assembled from 20120122-r1143
新修订 - 新数据,更新标题
【讨论】: