tfs - 自定义 TFS 环境变量不读取 $(Date)

标签 tfs environment-variables

我想使用这样的自定义 tfs 变量:

合并版本:$(BuildVersion.Major).$(BuildVersion.Minor).$(Date:yy)$(DayOfYear)$(Rev:.r)
我的问题是 $(Date) , $(Rev:r)$(DateOfYear)不要在 BuildNumberFormat-Settings 之外工作。

我的结果是:

invalid version string: '1.0.$(Date:yy)$(DayOfYear)$(Rev:.r)'.



使用此处显示的 buildnumberformat 时 - 正常工作:

enter image description here

结果 $(Build.BuildNumber)MyBuildName_1.0.18004.15

最佳答案

某些代币仅在 Build number format 中可用部分,例如 $(Date) , $(Rev:r)$(DateOfYear)你在这里提到。见 Build definition options

作为解决方法,使用 $(Rev:r)您可以将内部版本号格式设置为 $(Rev:r) ,然后使用 $(Build.BuildNumber)任务中的变量。

使用 $(Date:yy)$(DayOfYear) ,您可以通过 PowerShell 任务设置变量,如上面提到的 ChamindaC。

  • 在您的构建定义中添加一个 PowserShell 任务
  • 复制并粘贴下面的脚本并将其另存为 *.ps1文件
  • checkin PS 文件,然后在 PowerShell 任务中运行 PS 文件
    $time=$(Get-Date -Format 'yy') # you can set the date format based on your requirement $doy = (Get-Date).DayofYear Write-Host "##vso[task.setvariable variable=Date]$time" Write-Host "##vso[task.setvariable variable=DayOfYear]$doy"

  • 然后你可以使用变量 $(Date)$(DayOfYear)在其他构建任务中。

    enter image description here

    关于tfs - 自定义 TFS 环境变量不读取 $(Date),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48094110/

    相关文章:

    node.js - 如何将环境变量设置为 gulp 任务?

    visual-studio-2010 - 与 TFS 的初始连接非常慢

    visual-studio - 使用解决方案资源管理器与使用 TFS 时使用源代码管理资源管理器

    c# - TFS 错误 : item has pending changes but does not exist locally

    environment-variables - 如何从gvim中获取环境变量

    linux - envsubst : default values for unset variables

    Haskell:为什么在 cabal 下运行我的项目时我的环境变量不可用?

    tfs - 仅查询 Team Foundation Server 中分配给我的工作项

    visual-studio-2010 - 将 Visual Studio 文件夹/文件名结构与文件系统结构/文件名同步

    bash - 生成包含列表中命名的 shell 变量的 JSON 映射