我不确定它是否缺乏理解,但我在我的WiX安装程序中实现了以下代码
<?ifdef svn.BUILD_NUMBER?>
<?define PRODUCTVERSION="1.0.$(svn.BUILD_NUMBER).0"?>
<?else?>
<?define PRODUCTVERSION="1.0.1.0"?>
<?endif?>
<Product Id="*" Name="My Installer" Language="1033" Version="$(var.PRODUCTVERSION)" Manufacturer="My Corporation" UpgradeCode="170e2710-5690-4433-8787-7bcd0a922fbc">
无论我尝试什么,但我无法让安装人员使用SVN版本号...我错过了什么/做错了什么?
答案 0 :(得分:1)
变量必须具有三个前缀中的一个,具体取决于它们的创建方式:
这个“svn.BUILD_NUMBER”来自哪里?
更新:
从您的评论中,您似乎需要从项目外部获取修订号并将其带入内部。 有很多方法可以做到这一点。有些CI服务器会为构建提供一个环境变量来提供修订号。
在任何情况下,您都必须使用var.
或env.
更正预处理器变量的使用情况:
<?ifdef env.BUILD_NUMBER?>
<?define PRODUCTVERSION="1.0.$(env.BUILD_NUMBER).0"?>
<?else?>
<?define PRODUCTVERSION="1.0.1.0"?>
<?endif?>
如果您需要先创建环境变量,那么运行这样的命令就可以了:
set BUILD_NUMBER=
for /F "tokens=1,2" %t in ('svn info') do ^
@if "%t"=="Revision:" set BUILD_NUMBER=%u
根据您的需要,您可以获得更多动力:生成WiX包含(.wxi),使用MSBuild(请参阅您引用的文章)来执行诸如执行svn info
之类的任务,使用{{1}用一些XML处理,......