如何通过TFS集合URI编程获取TFS语义版本或版本系列?
编程获取TFS/Azure DevOps Server版本系列的方法
使用ADO .NET REST客户端库
可以借助VssConnection类的GetServerCapabilitiesAsync方法获取服务器版本信息,具体步骤:
- 用目标TFS集合URI和对应凭据初始化
VssConnection实例 - 调用
GetServerCapabilitiesAsync,返回的ServerCapabilities对象包含ServerVersion属性(Version类型) - 通过主版本号映射到对应的TFS版本系列,比如主版本号12对应TFS2013、14对应TFS2015
示例代码:
using Microsoft.VisualStudio.Services.Client; using Microsoft.VisualStudio.Services.Common; using Microsoft.VisualStudio.Services.ServerCapabilities; var tfsUri = new Uri("http://your-tfs-ip:port/CollectionName"); var credentials = new VssCredentials(); // 根据实际场景替换为合适凭据 using var connection = new VssConnection(tfsUri, credentials); var serverCapabilities = await connection.GetServerCapabilitiesAsync(); var serverVersion = serverCapabilities.ServerVersion; // 判断版本系列 string versionSeries; if (serverVersion.Major == 12) { versionSeries = "TFS2013"; } else if (serverVersion.Major == 14) { versionSeries = "TFS2015"; } // 可根据需要补充更多版本主号的判断逻辑
直接调用REST API
若不想依赖客户端库,可直接请求TFS的版本端点:
- 发送GET请求到
http://your-tfs-ip:port/_apis/server/version - 解析返回的JSON响应,提取
version字段后解析为Version对象,再通过主版本号判断系列
示例代码(使用HttpClient):
using System.Net.Http; using System.Text.Json; var httpClient = new HttpClient(); var response = await httpClient.GetStringAsync("http://your-tfs-ip:port/_apis/server/version"); var versionData = JsonSerializer.Deserialize<JsonElement>(response); var versionString = versionData.GetProperty("version").GetString(); var serverVersion = Version.Parse(versionString); // 依据主版本号判断对应系列
版本主号与TFS系列对应关系
- TFS2013:主版本号12
- TFS2015:主版本号14
- TFS2017:主版本号15
- Azure DevOps Server 2019及后续版本:主版本号保持15,通过次版本号区分具体系列
内容的提问来源于stack exchange,提问作者Aman Varshney
相关产品推荐
相关产品推荐

