You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure DevOps Get Work Item API $expand参数使用异常求助

解决Azure DevOps Get Work Item API展开Relations的问题

问题原因

  1. 带$的命令报错:PowerShell中$是变量标识符,直接在双引号字符串里写$expand会被解析为变量,而非URL的查询参数,导致实际传递给API的参数值异常,触发"The value 'relations' is not valid for Nullable`1"错误。
  2. 去掉$后参数被忽略:Invoke-VSTeamRequest cmdlet有专门的参数处理逻辑,直接将expand拼接在URL中会被内部过滤,无法正确传递给API。

正确实现方式

方法1:用单引号包裹URL(避免PowerShell解析$)

单引号字符串不会解析PowerShell变量,可直接保留URL中的$expand参数:

$workItem = Invoke-VSTeamRequest -Url 'https://dev.azure.com/{org}/{project}/_apis/wit/workitems/{id}?api-version=7.1-preview.3&$expand=relations'

方法2:使用QueryParameters参数(推荐)

Invoke-VSTeamRequest支持通过QueryParameters参数传递查询参数,更规范且避免URL拼接问题:

$queryParams = @{
    'api-version' = '7.1-preview.3'
    '$expand' = 'relations'
}
$workItem = Invoke-VSTeamRequest -Url 'https://dev.azure.com/{org}/{project}/_apis/wit/workitems/{id}' -QueryParameters $queryParams

方法3:转义$符号

如果必须使用双引号包裹URL,用反引号转义$`,让PowerShell将其视为普通字符:

$workItem = Invoke-VSTeamRequest -Url "https://dev.azure.com/{org}/{project}/_apis/wit/workitems/{id}?api-version=7.1-preview.3&`$expand=relations"

验证结果

调用成功后,返回的$workItem对象中会包含relations属性,对应工作项的关联关系数组。

内容的提问来源于stack exchange,提问作者user26526222

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 12:22:36