【问题标题】:TFS: Access a local variable used in build template in a powershell scriptTFS:在powershell脚本中访问构建模板中使用的局部变量
【发布时间】:2015-12-21 09:23:05
【问题描述】:

我已自定义构建模板以增加程序集版本号。

我需要一个我在构建过程中在构建后运行的 powershell 脚本中创建/使用的局部变量。

我在构建模板中创建的局部变量称为字符串类型的版本号。我想在构建后运行的 powershell 脚本中使用该变量值。

我该怎么做?

【问题讨论】:

  • 您是从构建模板中启动 powershell 脚本吗?
  • 嗯,它是通过在构建过程参数的高级部分中设置构建后脚本路径信息来触发的......
  • 为什么有人反对这个问题?
  • 你想用你的 PS 脚本做什么?它可能就像使用 InvokeProcess 活动从模板中启动 PS 一样简单,应该可以将 VersionNumber 字符串传递给活动。不确定,我没有投反对票。
  • 好吧,我没有使用 nuspec 文件在 CI 构建上创建 nuget 包.. 如果您不更改 AssemblyVersion 属性(我是自动递增 AssemblyFileVersion),它不会将其用于 nuget 包。所以我想将版本号传递给 tfs 构建服务器上的 ps 脚本发布。

标签: powershell tfs build


【解决方案1】:

正如您的问题所反映的,您似乎正在尝试在构建定义后不久运行 powershell 脚本。如果是这样的话:

在您的构建定义中,您必须在每次构建完成时创建新文件夹。

您可以在文件夹名称中使用您的变量名称(您要提取的名称)(因为您的变量包含版本号)。

然后在您的 powershell 脚本中,您可以按日期时间对文件夹进行排序,并可以获取文件夹名称(包含版本号)并可以使用它。

还建议按版本号使用您的文件夹名称。

【讨论】:

  • 抱歉完全不明白你在说什么。此变量属于构建模板中的代理范围。 powershell 作为构建后脚本启动。我认为必须有某种方法可以访问该变量,因为它应该仍然可用。
【解决方案2】:

作为一种解决方法,您可以将该值作为脚本参数传递给构建后的 PowerShell 脚本:

您的脚本会接受这样的参数:

# script.ps1
param([string] $MyParam)

# the rest of your script

我也希望能够直接访问构建模板。如果我知道如何,我会发布另一个答案。

【讨论】:

    猜你喜欢
    • 2016-10-29
    • 2016-07-21
    • 1970-01-01
    • 2018-03-06
    • 2019-10-29
    • 2017-10-10
    • 1970-01-01
    • 1970-01-01
    • 2019-11-04
    相关资源
    最近更新 更多