【问题标题】:How do I insert the latest TFS changeset number into an aspx page?如何将最新的 TFS 变更集编号插入 aspx 页面?
【发布时间】:2011-05-12 04:21:42
【问题描述】:

当我们使用 SVN 时,我们总是在页面的页脚打印:“Revision XXXX”。我一直在寻找,但我不知道如何用 TFS 做同样的事情。谁能给点指点?

如果这很重要:我们使用的是 ASP.NET MVC。不过,我猜这并不重要。

【问题讨论】:

    标签: asp.net asp.net-mvc msbuild tfsbuild


    【解决方案1】:

    您可以使用程序集的默认版本系统来跟踪修订号,而无需在 TFS 中添加任何内容。

    如果您在AssemblyInfoAssemblyVersion 属性(例如[assembly: AssemblyVersion("1.0.*")])中使用Major.Minor.* 格式,它将根据以下格式生成一个版本:

    Major.Minor.Build.Revision
    

    在哪里

    • 主要 = 你的价值
    • 次要 = 您的价值
    • 构建 = 天数 2000/01/01
    • Revision =(从当天午夜开始的秒数 在 Build 中指定)/2

    这将为您提供一个不断增加的数字,从而为您提供有关构建日期和时间的准确信息。

    要在您的代码中使用这些值,您只需使用 Assembly.GetExecutingAssembly().GetName().Version 恢复版本即可。

    【讨论】:

      【解决方案2】:

      您可以使用诸如this 之类的程序集版本控制工具/技术来更新AssemblyInfo.cs 中项目的版本号。可以根据 TFS 变更集编号更新程序集的版本号。然后可以在应用程序中显示版本号。

      【讨论】:

        【解决方案3】:

        至少在它发布时,TFS 不允许在文件中替换符号,这正是我认为您所追求的。我不确定这在最近的版本中是否发生了变化。

        【讨论】:

          【解决方案4】:

          变更集!= 版本

          话虽如此,您可以在 web.config 中添加一个保存版本号的设置,并将其显示在页面上。版本号可以作为构建过程的一部分进行更新,但它与变更集无关。

          我可能应该补充一点,这可能会成为一个循环问题。如果您获得项目的最新变更集编号,然后将其添加到配置中(如上所述),然后签入,您将不再显示最新的变更集。将 1 添加到最新的变更集也不能保证,因为在更新文件时可以签入某些内容。

          【讨论】:

            【解决方案5】:

            我们最终使用了一个 MsBuild 任务,该任务搜索特定字符串并替换为适当的值(不一定是修订号)。

            该任务作为我们构建模板的一部分运行,并将修订号放入所有存在令牌的文件中。

            【讨论】:

            • @K.R.R 你打算如何显示这个数字,它会被硬编码到每个页面中还是你会从另一个地方拉出来?
            猜你喜欢
            • 2012-05-02
            • 2017-12-27
            • 2013-06-19
            • 1970-01-01
            • 1970-01-01
            • 2019-06-24
            • 2014-03-07
            • 2015-10-11
            • 1970-01-01
            相关资源
            最近更新 更多