这是一个复杂的问题,所以我希望我能够解释得很清楚。
背景
我正在使用CruiseControl.NET和NAnt自动化构建过程。我要解决的最大问题是版本号格式和CruiseControl.NET在运行构建项目之前需要贴标签的标签。
目前,开发人员运行Visual Studio 2008以生成Debug,Release和Custom构建。这些配置中的每一个都调用BuildInc(一个自定义工具)来读取文件(version.ver),增加读取的版本号,为可执行属性生成.rc2文件,并将新版本写回version.ver。显然,在开发人员在源代码管理中标记发布之前,version.ver和.rc2会更改并需要检查备份到源代码。源代码管理中的标签是版本号,即1.2.3.4 - > 1-2-3-4。
目前,新的自动构建触发了一个调用NAnt脚本的CruiseControl.NET项目。 NAnt脚本运行Visual Studio并将构建发布到发布目录。这很好用,NAnt脚本可以通过读取version.ver来获取上一个和新版本号。问题是让CruiseControl.NET标记源并在仪表板上显示标签。新版本号/标签是在构建期间生成的,要增加的编号将保存在Visual Studio项目的预链接任务参数中。
版本号
版本号采用独特的格式,在主干和开发分支上进行的构建之间有所不同。在分支上完成的构建用于在完成时合并回主干的增强功能。
中继
分支
数字以零为前缀,即01,02。这对我遇到的任何工具都不适用。 (我希望改变它)
问题
毕竟,我希望你能理解我的问题。
如果需要更多信息,请与我们联系。
备注
语言是C ++,平台是Windows,源代码控制是CVS。
答案 0 :(得分:1)
您可以在项目中添加一个post build事件,它会将最新版本号(以您想要的任何格式)写入源文件夹中的文本文件,例如label.txt。
然后添加fileLabeller类型标签以获取最新版本号,该版本号将采用label.txt中的版本号。
<labeller type="fileLabeller">
<labelFilePath>ProjectFolder\label.txt</labelFilePath>
<allowDuplicateSubsequentLabels>true</allowDuplicateSubsequentLabels>
</labeller>