我正在使用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版本?
答案 0 :(得分:1)
@BenH是正确的。请检查this website:
Raw是FileSystem提供程序添加到的动态参数 Get-Content cmdlet。此参数仅适用于文件系统驱动器。
此参数是在Windows PowerShell 3.0中引入的。
请在构建代理计算机上安装较新版本的Powershell ,然后重新启动构建代理服务,再试一次。
答案 1 :(得分:0)
@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
varible中,然后使用此变量作为Get-Content中的参数来读取版本并将其存储$version
,最后我将$version
设置为SemverVersion
env变量,
有什么建议可以改善这种反应吗?