0

我正在使用 tfs build 构建我的项目的版本,它为 tfs 构建浏览器中的构建生成唯一标识,例如“MyProject_20090122.1”,表明这是 2009 年 1 月 22 日的第一个构建。然而,这是我发布的 MyProject 1.0.0。有没有办法连接这两个标识符,还是我必须在外部和其他地方维护映射?

我是否应该让我的版本标识符确认 tfs 构建名称的方式,以便我的上述版本号应该是 1.0.20090122.1?

有没有办法向 tfsbuild 添加评论?

你怎么做呢?

编辑:

正如一些人所建议的,版本号可以通过 msbuild 更新并自动递增。然而,问题是我如何确定特定团队构建的版本,因为版本号未嵌入构建名称中?我可以控制 tfs 构建名称的标识符吗?

4

3 回答 3

1

您可以覆盖版本控制目标以提供您自己的版本号。这样你就可以符合 xxx 或任何你想要的风格。理想情况下,xyx 意味着 x 是主要版本,y 是次要版本(点发布),z 是一个唯一的版本号,每次构建都会递增。您可能还想使用新更新的内部版本号(例如 1.0.1423)再次签入 assemblyinfo.cs。

通过谷歌有很多关于这个的信息。特别是:http: //geekswithblogs.net/etiennetremblay/archive/2008/10/03/matching-tfs-build-labels-with-custom-build-number.aspx

于 2009-01-22T10:50:12.690 回答
0

我已经获取了我的 msbuild 文件并覆盖了版本号生成步骤。这允许我推送我自己的版本号,然后 MSBuild 在整个构建步骤中使用该版本号。

您需要编辑的文件是 TFSBuild.proj 文件,它本质上只是一个 MSBuild 文件。

如果您有一个名为“BuildNumberOverrideTarget”的目标,如下面的代码所示,您可以告诉 MSBuild 使用您的自定义编号。还有一篇关于如何覆盖内部版本号的MSDN 文章。

<Target Name = "BuildNumberOverrideTarget" >
    <BuildNumberGenerator> 
    <Output TaskParameter="BuildNumber" PropertyName="BuildNumber"/> 
    </BuildNumberGenerator> 
  </Target>

本质上,您所要做的就是编写一个覆盖 BuildNumberOverrideTarget 的目标,您的构建将反映这一点。

于 2009-01-22T10:50:22.597 回答
0

查看我的博客文章,了解有关如何创建和集成您自己的 TFS 内部版本号生成器的完整详细信息:http: //www.grahamzero.com/blog/2009/03/team-foundation-server-2008-build-number-generator .html

于 2009-03-13T03:39:14.430 回答