【问题标题】:Change BuildNumber using Powershell in Teamcity在 Teamcity 中使用 Powershell 更改 BuildNumber
【发布时间】:2018-11-03 00:49:31
【问题描述】:

我正在使用 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# net core 项目文件中的版本号作为构建号。运行此脚本时,我收到以下错误消息。

   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

【问题讨论】:

  • 是的。这就是问题。但是,当我纠正问题时,出现了更多错误。 [09:41:46][步骤 3/8] 无法将值“(\S*)\Version>”转换为类型“System.Text.RegularEx [09:41:46][步骤 3/ 8] pressions.Regex”。错误:“正在解析”(\S*)

标签: powershell teamcity


【解决方案1】:

正则表达式字符串没有右引号,转义的\V 会导致错误。

改成

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

【讨论】:

    猜你喜欢
    • 2016-08-30
    • 1970-01-01
    • 2017-05-31
    • 2014-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-01
    • 2016-01-14
    相关资源
    最近更新 更多