【问题标题】:How should I refer to Team Foundation Server builds?我应该如何引用 Team Foundation Server 版本?
【发布时间】:2009-03-13 11:39:14
【问题描述】:

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

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

有没有办法将 cmets 添加到 tfsbuild 中?

你是怎么做到的?

编辑:

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

【问题讨论】:

  • 如果您有 1.0.0 版,我希望您会覆盖 buildnumberoverridetarget 并将其适当地设置为存储的 1.0.0 版号。
  • 在我的例子中,我们有一个名为 version.xml 的本地源代码控制文件,其中包含最后一个版本号。我们增加它并使用该文件中的版本作为我们的内部版本号。

标签: tfs versioning tfsbuild


【解决方案1】:

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

通过 google 有很多关于此的信息。尤其是: http://geekswithblogs.net/etiennetremblay/archive/2008/10/03/matching-tfs-build-labels-with-custom-build-number.aspx

【讨论】:

    【解决方案2】:

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

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

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

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

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-11-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-11-04
        • 2017-01-22
        • 1970-01-01
        • 2015-01-24
        相关资源
        最近更新 更多