【发布时间】:2011-10-10 02:14:08
【问题描述】:
这是一个复杂的问题,所以我希望我能解释清楚。
背景
我正在使用 CruiseControl.NET 和 NAnt 自动化构建过程。我遇到的最头疼的问题是版本号格式和 CruiseControl.NET 在运行构建项目之前需要来自贴标机的标签。
目前,一名开发人员运行 Visual Studio 2008 来生成调试、发布和自定义版本。这些配置中的每一个都会调用 BuildInc(一个自定义工具),它读取文件 (version.ver) 会增加读取的版本号,为可执行属性生成一个 .rc2 文件并将新版本写回 version.ver。显然 version.ver 和 .rc2 发生了变化,需要在开发人员在源代码控制中标记发布之前检查源代码。源代码管理中的标签是版本号,即 1.2.3.4 -> 1-2-3-4。
目前,新的自动构建会触发一个 CruiseControl.NET 项目,该项目会调用一个 NAnt 脚本。 NAnt 脚本运行 Visual Studio 并将构建发布到发布目录。这很好用,NAnt 脚本能够通过读取 version.ver 来获取以前的和新的版本号。问题是让 CruiseControl.NET 标记源并在仪表板上显示标签。新版本号/标签是在构建期间生成的,要增加的版本号保存在 Visual Studio 项目中的预链接任务参数中。
版本号
版本号采用独特的格式,并且在主干和开发分支上完成的构建之间有所不同。在分支上完成的构建是为了在完成后合并回主干的增强功能。
后备箱
- 格式:[Major].[Merge].[Release].00 即 42.01.02.00
- 重大:系统号
- Merge:如果分支被合并则增加
- 发布:在错误修复中增加
分公司
- 格式 [Major].00.[Stream].[Release] 即 42.00.01.01
- 重大:系统号
- Stream:Stream 编号,将其链接到其他组件以进行增强
- 发布:在错误修复中增加
数字以零为前缀,即 01、02。这不适用于我遇到的任何工具。 (我希望改变这一点)
问题
毕竟我希望你能理解我的问题。
- 我可以对自动化流程进行哪些总体改进?
- 您认为在开始构建之前应该知道版本号吗?
- 自动化构建系统是否应该自动增加版本号?
- 我应该考虑更改版本号格式吗?
- 任何其他的cmet,我真的需要更多的意见。
如果需要更多信息,请告诉我。
注意事项
语言是 C++,平台是 Windows,源代码控制是 CVS。
【问题讨论】:
-
您是否在 Cruise control .net 中为分支和主干创建单独的项目?
-
是的,主干项目将继续进行,而分支项目将根据需要添加和删除。
标签: visual-studio-2008 cruisecontrol.net versioning nant