c# - MVC 中 TFS 的版本号

标签 c# asp.net-mvc continuous-integration visual-studio-2013

快速提问,是否可以从 TFS 中检索持续集成编号/版本号,并在构建后将其用作站点的一部分。

例如 来自 TFS 的 MVC 项目的最新版本用作演示的一部分。我想在 MVC 应用程序中使用 TFS 的版本号。

屏幕上显示的版本号(可能在页脚中)。

我想这样做的原因是为了向演示的观看者展示他们正在观看的确切版本以及自他们看到的上一个版本以来发生了多少变化。

我意识到这可能是一个愚蠢的问题,我不确定我正在尝试做的事情是否可行。

附言我现在正在使用

[assembly: AssemblyVersion("1.0.*")]

从 AssemblyInfo.cs 并将其转换为可读日期(例如 03/01/2014 17:28)以概述项目的版本时间并将其显示在我的 MVC 项目的主页上。这很好用。

最佳答案

通常您配置 CI 服务以便构建

  • 适当增加版本/内部版本号
  • 使用该编号构建用于在源代码管理中标记源代码树的标签
  • 将源代码树的内容提取到构建目录中
  • 扫描 AssemblyInfo.cs 文件的源代码树,更改它们的 AssemblyVersion 属性以正确反射(reflect)生成的版本/内部版本号

Et voila!您的所有程序集都已正确标记了正确的版本号。

至少,我们一直都是这样做的。当然,具体情况完全取决于

  • 您的源代码控制系统
  • 你的持续集成系统
  • 您的构建系统。

nAnt 和 CruiseControl.Net 以及大多数主流源代码控制系统都非常简单。我想对其他 CI 服务器做同样的事情并不困难。如果您使用的是更古怪的源代码控制,例如 Serena Dimensions、ClearCase 或 TFS,这可能会有点困难。

关于c# - MVC 中 TFS 的版本号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20909591/

相关文章:

c# - ASP.NET MVC : Html. Action/Html.ActionLink 和特定于文化的 DateTime

git - 如何正确使用带有 Git 钩子(Hook)的 CI 脚本来压缩源代码

python - 与 python 2.7/flask/mongoDB/git 的持续集成

c# - LINQ to Entities 不支持 LINQ 表达式节点类型 'NewArrayBounds'

c# - 在断言之前或之后模拟 Verify/VerifyAll

javascript - 在我的服务器上配置 JavaScript Google Maps API 时出现问题

continuous-integration - TFS 2010 构建 : Continuous Integration and Gated Check-In together?

c# - 引用 DLL 未在 Visual Studio 2010 中加载

c# - 带有 ref 关键字的空合并运算符

asp.net-mvc - 使用无障碍 JQuery 在部分 View 中显示错误消息时遇到问题