如何在不使用 assemblyinfo 的情况下使用 TFS 构建自动增加版本号?

Posted

技术标签:

【中文标题】如何在不使用 assemblyinfo 的情况下使用 TFS 构建自动增加版本号?【英文标题】:How could I auto increment version number with TFS builds without using assemblyinfo? 【发布时间】:2016-05-11 09:29:19 【问题描述】:

我有很多 Web 应用程序项目。我需要一种在每个网站的页脚中添加版本号的方法(可见或隐藏,以便我可以访问版本号)。我想设置 TFS 构建,这样我就可以在每次提交时自动发布到测试服务器,它会自行更新这个版本号。我已经设置了网络部署并且工作正常,这只是版本号的问题。问题是 - 我使用的 CMS 使用 AssemblyInfo 进行自己的版本控制,所以我不能使用它。我需要某种可以自动递增的自定义版本号。我已经阅读了很多关于如何使用程序集执行此操作的示例,但是我可以以其他方式应用相同的原理吗?

我正在使用的工具是 - TFS 2010、Visual Studio 2013、ASP.NET Web 应用程序

非常感谢任何帮助,谢谢!

【问题讨论】:

【参考方案1】:

您可以将版本存储在一个文件(version.xml、version.txt、version.json 或类似文件)中,并创建一个 version.aspx 从文件中读取并将其显示在屏幕上。比如:

version=##version##
changeset=##changeset##

然后,您可以在构建中添加一个 powershell 步骤,以替换当前构建中的值。

    param($version, $ChangeSet)
    (Get-Content version.txt).replace('##version##', $version) | Set-Content version.txt
    (Get-Content version.txt).replace('##ChangeSet##', $ChangeSet) | Set-Content version.txt

然后您从传递这两个参数的步骤调用脚本...

【讨论】:

感谢您的回复,我试试看

以上是关于如何在不使用 assemblyinfo 的情况下使用 TFS 构建自动增加版本号?的主要内容,如果未能解决你的问题,请参考以下文章

如何在不使用 div 的情况下使 iframe 响应?

如何在不使用 flexbox 等的情况下使表格网格响应 [重复]

如果数字不是偶数,为啥这个函数会返回“None”?如何在不使用其他条件的情况下使其返回“False”?

如何在不打开应用程序的情况下使 ContentObserver 工作?

如何在不需要额外点击的情况下使 DataGridCheckBoxColumn 可编辑?

如何在不更新整个固件的情况下使嵌入式系统可配置