如何在TFS构建中读取package.json版本

如何在TFS构建中读取package.json版本,json,powershell,tfs,asp.net-core,Json,Powershell,Tfs,Asp.net Core,我正在使用TFS 2017 for CI,我不想获取存储在.net核心项目的package.json文件中的版本,我尝试了以下powershell脚本: $SemverVersion = (Get-Content -Raw -Path Path/package.json | ConvertFrom-Json).version 我在日志中发现此错误: Get-Content : Impossible de trouver un paramètre positionnel acceptant l

我正在使用TFS 2017 for CI,我不想获取存储在.net核心项目的package.json文件中的版本,我尝试了以下powershell脚本:

$SemverVersion = (Get-Content -Raw -Path Path/package.json | ConvertFrom-Json).version 
我在日志中发现此错误:

Get-Content : Impossible de trouver un paramètre positionnel acceptant l'argument «
Le processus s'est achevé avec le code de sortie 0. 1 erreur(s) écrite(s) dans le flux d'erreurs.

有没有其他方法或工具可以读取TFS Build中的package.json版本?

@BenH是正确的。请检查:

Raw是文件系统提供程序添加到 获取内容cmdlet。此参数仅适用于文件系统驱动器

此参数在Windows PowerShell 3.0中引入


请在生成代理计算机上安装更新版本的Powershell,然后重新启动生成代理服务,再试一次。

@BenH,此Powershell运行良好:

(Get-Childitem -Path .\ -Include *package.json* -Recurse -ErrorAction SilentlyContinue | Where {$_.FullName -notlike "*\wwwroot\*"} | Where {$_.FullName -notlike "*\no
de_modules\*"}| Where {$_.FullName -like "*\release\*"} | Select-Object -First 1).fullName
>>> $version = (Get-Content $path) -join "`n" | ConvertFrom-Json | Select -ExpandProperty "version"
>>> Write-Host ("##vso[task.setvariable SemverVersion=$version;]$version")
首先,我读取路径并将其存储在
$path
变量中,然后在Get Content中使用此变量作为参数来读取版本并将其存储在
$version
,最后,我在
SemverVersion
环境变量中设置
$version

有什么建议可以改进这种反应吗

正在运行哪个版本的PowerShell?我认为这可能是
-raw
参数的问题,该参数是在2007年TFS中PowerShell 3im使用任务时才添加的。您能否将
$psversiontable.psversion
添加到任务中,并查看它运行的版本?