从 WIT 客户端 OM 迁移到 REST API

Azure DevOps Services

重要

需要遗留技术替换

WIT 客户端 OM(工作项跟踪客户端对象模型)是应替换为基于 REST 的新式 .NET 客户端库的旧技术。 迁移提供更好的性能、安全性和跨平台支持。

本指南可帮助你将 .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 客户端库示例 ,了解工作代码示例。