TFS构建:在程序集的“构建号”字段中包含分支名称

时间:2011-01-20 00:47:22

标签: .net tfs assemblies versioning tfsbuild

我希望能够查看一个程序集并快速确定它是由哪个分支构建的。

将TFS Build配置为在其创建的程序集的Build Number字段(或更合适的字段)中包含当前分支的名称的最佳方法是什么?

2 个答案:

答案 0 :(得分:4)

查看http://msbuildtasks.tigris.org/

中的版本任务

它将使您能够在构建时更新assemblyinfo.cs。

仍然留下了“如何”识别分支...

关于对版本编号进行宗教辩论的风险,您可以将major.minor.build.revision部分的一部分专用于分支。 例如,major.minor只是跟随你的'外部/商业'版本号,build是构建数字形式TFS,修订1表示你的主分支,修订2表示某个分支。 您还可以使用其他程序集版本属性,例如AssemblyInformationalAttribute来存储分支ID。

我不是最新的如何检测你所在的分支,但最糟糕的情况只是获取当前目录并应用一些逻辑来推断分支名称。 tf分支的输出。命令还应该为您提供当前工作空间的分支名称,但您需要一个自定义任务来仅提取​​第一行。

不是即插即用的答案,但它可能会带给您正确的方向。

答案 1 :(得分:0)

在获取和更新各种AssemblyInfo.cs文件方面,该版本很简单。

我将以与Subversion约定类似的方式组织您的TFS结构,因此有一个trunk,tags和branches文件夹。

通过一致的命名,您可以确保您的特定MSBuild文件始终是来自特定分支名称的主干的一定数量的目录。

有一个自定义的MSBuild任务可以为您完成此任务(通过导航TFS文件夹层次结构),并将其提供给用于更新AssemblyInformationalAttribute的属性。您可以使用http://msbuildtasks.tigris.org/中的FileUpdate任务在AssemblyInfo.cs文件上执行Regex替换。