Dze*_*jms 15 versioning teamcity .net-assembly
现在我们的程序集的版本号如2.0.831.0.据我了解,这是主要版本,次要版本,日期和内部版本号.如果我在同一天进行更改并再次构建,则为2.0.831.1,2.0.831.2等.
我的TeamCity构建数字格式只是2. {0}其中{0}是一个自动递增的数字,只是永远持续(2.195,2.196等).
如何使TeamCity看起来与装配版本完全一样?我们希望能够将更改日志与程序集版本相关联,因此任何人都可以说程序集版本2.0.831.2在这些文件中进行了这些更改.
额外信息:如果重要,我们的构建步骤使用"Visual Studio(sln)"选项而不是"MSBuild".如果重要,我们使用Subversion进行源代码控制.我们的TeamCity版本是6.5.1(build 17834).
cce*_*lar 21
我建议你采用语义版本控制方案, {major}.{minor}.{patch}
并为构建号附加第4个元素{major}.{minor}.{patch}.{build}
.这对于将构建日期包括在版本控制方案中更为有用.
TeamCity 6.5(您尚未指定版本)具有构建功能,可用于在构建期间修补AssemblyInfo.cs中的版本.请参阅AssemblyInfo Patcher的文档.
然后,您可以按照组件中的方式定义构建号格式,并使用构建本身的格式,以及修补功能.
一种解决方案是使用MSBuild运行程序,并编写一个MSBuild脚本,该脚本从AssemblyInfo文件中读取版本信息,在运行构建时将TeamCity构建版本设置为该值,然后增加该版本的内部版本号部分,并编写值返回AssemblyInfo.
这并不是特别简单,因为您需要了解编写自定义MSBuild脚本,并且您可能需要使用一些社区任务等来读取/写入版本信息.
我们还使用全局AssemblyInfo文件的概念,我们所有程序集都引用该文件(使用VS中的Add Link),因此我们只需要在构建期间更新一个文件.
有一个很好的文章在这里,它描述了这样共同的CI任务,MSBuild的.他正在使用CruiseControl.NET,但其中大部分仍然适用.如果你正在运行TeamCity 6.5,我会考虑专门使用它的构建功能,因为这比自定义的MSBuild脚本更容易维护.
归档时间: |
|
查看次数: |
6766 次 |
最近记录: |