【问题标题】:PowerShell script builds the wrong path in TFS2017PowerShell 脚本在 TFS2017 中构建错误的路径
【发布时间】:2019-08-25 14:30:27
【问题描述】:

我正在添加一个 PowerShell 脚本以在我的构建中运行以获取构建的版本号。当我使用 builder(Box with ...) 来获取文件时,它会将我带到我的 TFS 项目,然后我会逐步找到该文件。当构建定义运行时,它在该步骤失败,因为它找不到我的脚本。
它所做的是将本地服务器工作目录添加到它让我选择的路径的前面。

我觉得这是一个错误,或者当构建定义运行时,我想如何在 TFS 中获取脚本的最新副本。

【问题讨论】:

    标签: powershell tfs tfsbuild


    【解决方案1】:

    在我这边尝试了一个简单的 powershell 脚本,但无法重现您的问题,该脚本正在运行。

    在build中只添加一步,在Repositity中映射到$/teamproject,然后选择脚本:

    要缩小问题范围,您可以创建一个只有一个任务的新管道 - Powershell,检查会发生什么。

    如果仍然出现错误,请与system.debug=true enable 分享详细日志。

    还可以看看这个关于如何使用 powershell fetch/change build number 的教程,这可能会有所帮助--Use a PowerShell script to customize your build pipeline


    更新

    根据您的错误信息,您缺少定义。

    请确保您已在选项中指定值--内部版本号格式

    $(BuildDefinitionName)_$(Year:yyyy).$(Month).$(DayOfMonth)$(Rev:.r)

    那么它应该可以毫无问题地运行:

    【讨论】:

    • 2 个错误,0 个警告 构建 - 2 个错误,0 个警告 找不到格式为 '\d+\.\d+\.\d+ 的版本号\.\d+' 在 BUILD_BUILDNUMBER '573' 中。在 D:\TFSVSOWork\6\s\TECH\PowerShell\AssemblyVersion.ps1:133 char:10 + throw "找不到格式为 '$VersionFo ... + ~~~ + CategoryInfo 的版本号:OperationStopped: (不能find ...LDNUMBER '573'.:String) [], RuntimeException + FullyQualifiedErrorId : 在 BUILD_BUILDNUMBER '573' 中找不到格式为 '\d+\.\d+\.\d+\.\d+' 的版本号。过程已完成退出代码为 1 且有 1 个错误写入错误流。
    • 所以我确实只用 PS 重新创建了,我收到了同样的问题,D:\TFSVSOWork\6\s 不应该存在并且项目丢失。如果我在 /Project/TECH 之前删除 $ 我会得到不同的结果。但在这两种情况下,我都无法运行 AssemblyVersion.ps1
    • @StephanM 抱歉,由于假期,稍后回复,根据您的屏幕截图,您似乎缺少内部版本号格式定义。更多详细信息请查看我的更新回复,希望对您有所帮助。此外脚本路径中还有一个&。
    猜你喜欢
    • 2016-01-04
    • 1970-01-01
    • 2017-02-20
    • 2013-11-17
    • 1970-01-01
    • 2013-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多