【发布时间】:2011-05-12 04:21:42
【问题描述】:
当我们使用 SVN 时,我们总是在页面的页脚打印:“Revision XXXX”。我一直在寻找,但我不知道如何用 TFS 做同样的事情。谁能给点指点?
如果这很重要:我们使用的是 ASP.NET MVC。不过,我猜这并不重要。
【问题讨论】:
标签: asp.net asp.net-mvc msbuild tfsbuild
当我们使用 SVN 时,我们总是在页面的页脚打印:“Revision XXXX”。我一直在寻找,但我不知道如何用 TFS 做同样的事情。谁能给点指点?
如果这很重要:我们使用的是 ASP.NET MVC。不过,我猜这并不重要。
【问题讨论】:
标签: asp.net asp.net-mvc msbuild tfsbuild
您可以使用程序集的默认版本系统来跟踪修订号,而无需在 TFS 中添加任何内容。
如果您在AssemblyInfo 的AssemblyVersion 属性(例如[assembly: AssemblyVersion("1.0.*")])中使用Major.Minor.* 格式,它将根据以下格式生成一个版本:
Major.Minor.Build.Revision
在哪里
这将为您提供一个不断增加的数字,从而为您提供有关构建日期和时间的准确信息。
要在您的代码中使用这些值,您只需使用 Assembly.GetExecutingAssembly().GetName().Version 恢复版本即可。
【讨论】:
您可以使用诸如this 之类的程序集版本控制工具/技术来更新AssemblyInfo.cs 中项目的版本号。可以根据 TFS 变更集编号更新程序集的版本号。然后可以在应用程序中显示版本号。
【讨论】:
至少在它发布时,TFS 不允许在文件中替换符号,这正是我认为您所追求的。我不确定这在最近的版本中是否发生了变化。
【讨论】:
变更集!= 版本
话虽如此,您可以在 web.config 中添加一个保存版本号的设置,并将其显示在页面上。版本号可以作为构建过程的一部分进行更新,但它与变更集无关。
我可能应该补充一点,这可能会成为一个循环问题。如果您获得项目的最新变更集编号,然后将其添加到配置中(如上所述),然后签入,您将不再显示最新的变更集。将 1 添加到最新的变更集也不能保证,因为在更新文件时可以签入某些内容。
【讨论】:
我们最终使用了一个 MsBuild 任务,该任务搜索特定字符串并替换为适当的值(不一定是修订号)。
该任务作为我们构建模板的一部分运行,并将修订号放入所有存在令牌的文件中。
【讨论】: