在Teamcity中使用Powershell更改BuildNumber

时间:2018-11-02 16:27:41

标签: powershell teamcity

我正在使用Powershell脚本在Teamcity中更改BuildNumber:

$projectFile = Resolve-Path ".\\source\\project\\project.csproj"
$info = (Get-Content $projectFile)
$matches = ([regex]'<Version>(\S*)</\Version>).Matches($info)
$newBuildNumber = $matches[0].Groups[1].Value
Write-Host "##teamcity[buildNumber '${newBuildNumber}']"

基本思想是使用C#网络核心项目文件中的版本号作为内部版本号。运行此脚本时,出现以下错误消息。

   Unexpected token 'newBuildNumber' in expression or statement.
   [09:11:44][Step 3/8] At 
   C:\TeamCity\buildAgent\temp\buildTmp\powershell4859822141650403163.ps1:5 cha
   [09:11:44][Step 3/8] r:54
   [09:11:44][Step 3/8] + Write-Host "
   [09:11:44][Step 3/8] "
   [09:11:44][Step 3/8]     + CategoryInfo          : ParserError: 
   (newBuildNumber:String) [], ParentC 
   [09:11:44][Step 3/8]    ontainsErrorRecordException
   [09:11:44][Step 3/8]     + FullyQualifiedErrorId : UnexpectedToken

1 个答案:

答案 0 :(得分:1)

regex字符串没有右引号,转义的\V导致错误。

更改为

$matches = ([regex]'<Version>(\S*)</Version>').Matches($info)