我希望能够查看一个程序集并快速确定它是由哪个分支构建的。
将TFS Build配置为在其创建的程序集的Build Number字段(或更合适的字段)中包含当前分支的名称的最佳方法是什么?
答案 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替换。