繁体   English   中英

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

[英]How to read package.json version in TFS build

我正在将 TFS 2017 用于 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是动态参数,FileSystem提供程序将其添加到Get-Content 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 env变量中设置了$version ,是否有任何建议可以改善此响应?

像这样的非单衬:

$jsonFile = Get-Content "package.json"
$jsonObj = $jsonFile | ConvertFrom-Json
$versionPrefix = $jsonObj.version

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM