签入时从 TFS(Team Foundation Server)更新 AssemblyInfo.cs 版本

Posted

技术标签:

【中文标题】签入时从 TFS(Team Foundation Server)更新 AssemblyInfo.cs 版本【英文标题】:Update AssemblyInfo.cs version from TFS (Team Foundation Server) when Checking in 【发布时间】:2019-01-11 10:57:51 【问题描述】:

正如标题所说。 有没有办法从 TFS 中获取一个值,比如“构建值”,我可以在单击“团队资源管理器”中的“签入”后将其实现到 Visual Studio 表单应用程序中?

发现类似这样的东西:https://archive.codeplex.com/?p=tfsversioning 但看起来项目太大了。

【问题讨论】:

你用的是什么版本的TFS? Microsoft Visual Studio Team Foundation Server 版本 16.122.27102.1,不知道是哪一年,我认为是最新的(2015 年?) 【参考方案1】:

假设您使用的是 vNext 构建系统(TFS 2015 及更高版本),那么您可以通过 CI(持续集成)构建来实现。

    在 TFS 上安装扩展 Update AssemblyInfo 创建构建定义并启用Continuous Integration,添加 任务Update AssemblyInfo 使用预定义变量Build.BuildNumber 获取构建 编号并将内部版本号设置为文件版本

    复制下面的命令并保存为 PowerShell/cmd 脚本,然后添加一个 PowerShell/命令任务作为最后一个任务运行脚本 检查更改。见Checkin command。

    tf Checkin $source_dir /comment:"Updated AssemblyInfo.cs version" /noprompt /force /bypass /override:"bypass checkin policies"
    

因此,一旦您签入更改,构建定义将被触发,AssemblyInfo.cs 版本将使用内部版本号自动更新,并且在构建完成后将签入更新的 AssemblyInfo.cs 文件。

参考以下主题:

Display the TFS server Build number in the UI of a WPF application TFS 2017 vNext Build Get workspace with powershell

【讨论】:

@Edgaras 您是否通过解决方案解决了问题?有更新吗? 是的,我能够在构建解决方案之前使用“更新 AssemblyInfo”,这似乎可以解决问题!谢谢!

以上是关于签入时从 TFS(Team Foundation Server)更新 AssemblyInfo.cs 版本的主要内容,如果未能解决你的问题,请参考以下文章

如何使用C#(Visual Studio)从TFS(Team Foundation Server)获取/复制文件

Team Foundation 数据从 TFS2010/SQL Server 2008R2 迁移到 TFS2012/SQL Server 2012 服务器

如何在 Eggplant 上使用 TFS(Team Foundation Server)?

TFS 2012 不会将 TFS 服务器添加到“Team Foundation Server 列表”

从SQL Server bak文件还原Team Foundation Server

Team Foundation:多发布结构