Azure DevOps Services
本指南可帮助你将 .NET 代码从已弃用的 WIT 客户端 OM 迁移到新式 REST API。 迁移具有显著优势:
✅ 现代优势:
- 异步操作以提升性能
- 使用托管标识和服务主名称进行现代身份验证
- 跨平台支持(.NET Core、.NET 5+和 .NET Framework)
- 积极开发和持续支持
❌ 遗留限制:
- 仅限 .NET Framework 和 Windows
- 同步、阻塞操作
- 过时的身份验证方法
迁移概述
步骤 1: 更新 NuGet 包 - 将 WIT 客户端 OM 替换为新式 REST 客户端包 步骤 2: 更新身份验证 - 迁移到安全的新式身份验证方法 步骤 3: 转换作 - 将同步调用替换为异步 REST作
有关详细的代码示例和分步迁移示例,请参阅 GitHub Azure DevOps WIT 客户端 OM 迁移指南。
常见场景迁移表
下表显示了如何将常见工作项作从旧版 WIT 客户端 OM 迁移到新式 REST API:
| 情景 | 旧版 WIT 客户端 OM | 新式 REST API |
|---|---|---|
| 获取工作项列表 | WorkItemStore.Query | 工作项 - 列表 |
| 获取单个工作项 | WorkItemStore.GetWorkItem | 工作项 - 获取工作项 |
| 创建新工作项 | WorkItem | 工作项 - 创建 |
| 更新现有工作项 | WorkItem.Fields | 工作项 - 更新 |
| 验证工作项 |
WorkItem.IsValid(), WorkItem.Validate() |
工作项 - 更新(仅验证) |
| 创建指向现有工作项的链接 | WorkItem.WorkItemLinks.Add | 工作项 - 更新(添加链接) |
| 添加注释 | WorkItem.History | 工作项 - 更新(添加注释) |
| 创建超链接 | WorkItem.Links.Add() | 工作项 - 更新(添加超链接) |
| 添加附件 | WorkItem.Attachments.Add() | 工作项 - 更新(添加附件) |
| 使用 WIQL 查询工作项 | WorkItemStore.Query() | Wiql - 按 Wiql 查询 |
| 运行现有查询以获取工作项 | WorkItemStore.Query() | Wiql - 按 ID 查询 |
| 获取项目的工作项类型列表 | 类别.工作项类型 | 工作项类型 - 列表 |
| 获取工作项类型详细信息 | 类别.工作项类型 | 工作项类型 - 获取 |
| 获取工作项类型的字段列表 | WorkItemType.FieldDefinitions | 工作项类型字段 - 列表 |
| 获取字段详细信息 | WorkItemType.FieldDefinitions | 工作项类型字段 - 获取 |
身份验证迁移
旧式身份验证(❌ 替换):
// WIT Client OM with basic authentication
using (var tpc = new TfsTeamProjectCollection(new Uri(collectionUri)))
{
tpc.Authenticate();
var workItemStore = tpc.GetService<WorkItemStore>();
}
新式身份验证(✅ 建议):
// REST client with managed identity (for Azure-hosted apps)
var credentials = new VssAzureIdentityCredential();
using var connection = new VssConnection(new Uri(collectionUri), credentials);
var witClient = connection.GetClient<WorkItemTrackingHttpClient>();
// Alternative: Service principal for CI/CD
// var credentials = new VssServicePrincipalCredential(clientId, clientSecret, tenantId);
// Alternative: PAT for development/testing
// var credentials = new VssBasicCredential(string.Empty, personalAccessToken);
后续步骤和资源
📖 基本迁移资源
- 新式 .NET 客户端库示例 - 具有新式身份验证的生产就绪代码示例
- 身份验证指南 - 为方案选择正确的身份验证方法
- .NET 客户端库概念 - 了解新式客户端体系结构
🔧 代码示例和工具
- 包含代码示例的迁移指南 - 包含详细迁移示例的 GitHub 存储库
- 工作项跟踪 REST API 文档 - 包含示例的完整 API 参考
🆘 支持和用户社区
- Azure DevOps 开发人员社区 - 提问并获取帮助
- 迁移指南问题 - 报告缺少的方案或获取特定帮助
🔄 相关迁移
- 将数据从 Azure DevOps Server 迁移到 Azure DevOps Services - 服务迁移指南
- 旧版 SOAP 客户端示例 - 其他旧客户端模式参考
小窍门
开始迁移: 首先, 请从身份验证指南 开始选择正确的方法,然后参阅 .NET 客户端库示例 ,了解工作代码示例。