[英]TFS 2018 XAML build migration
我目前正在将XAML构建定义升级到新的构建系统。 已经消除了一些错误,但是现在我已无法分辨什么是错误的了。 我们在大多数构建过程中都使用PowerShell脚本,尽管服务器上所有必需的数据都可用,但是在运行构建时出现以下错误:
有谁知道会导致该错误的原因吗? 或者至少我应该在哪里检查?
提前致谢。
编辑:脚本准备了外部工具无法完成的构建配置,并且特定于我们的项目。 错误发生在$teamProjectCollection =...
Function Get-BuildNumberFromUri() {
<#
.SYNOPSIS
Reads the build number from the current TFS build ($Env:BUILD_BUILDURI)
.DESCRIPTION
Reads the build number from the current TFS build ($Env:BUILD_BUILDURI)
.NOTES
May fail if $env:SYSTEM_TEAMFOUNDATIONCOLLECTIONURI or $env:BUILD_BUILDURI
are not set
#>
[String] $CollectionUrl = "$env:SYSTEM_TEAMFOUNDATIONCOLLECTIONURI"
[String] $BuildUrl = "$env:BUILD_BUILDURI"
if (-not $CollectionUrl -or -not $BuildUrl) {
return "0"
}
[void[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.TeamFoundation.Client")
[void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.TeamFoundation.Build.Client")
[void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.TeamFoundation.VersionControl.Client")
$teamProjectCollection = [Microsoft.TeamFoundation.Client.TfsTeamProjectCollectionFactory]::GetTeamProjectCollection($CollectionUrl)
$buildServer = $teamProjectCollection.GetService([Microsoft.TeamFoundation.Build.Client.IBuildServer])
$buildDetail = $buildServer.GetBuild($BuildUrl)
$buildNumber = $buildDetail.BuildNumber
return $buildNumber
}
这是问题所在:
您正在使用新的构建系统。 您需要退后一步,并根据新构建系统的功能重新评估现有的脚本。
您具有用于检索内部版本号的大型PowerShell片段。 很棒,除了两件事:
$env:BUILD_BUILDNUMBER
变量来检索当前的内部版本号。 无需特殊代码。 在Team Foundation Server的早期版本中,客户端对象模型是在GAC中注册的,并且在运行XAML时由构建代理预先加载。 在新代理中,构建步骤独立于客户端对象模型。
您有两个选项可以找到客户端对象模型程序集:
还有一个更简单但官方不支持的选项:
不要使用$(Agent.ServerOMDirectory)。 对于任务作者而言,依赖与代理程序捆绑在一起的SDK是不安全的。 Agent.ServerOMDirectory是一个便利变量,它指向与代理捆绑在一起的最新SDK。 SDK可能会在不同版本之间进行重大的界面更改。 取决于代理随附的最新版本,将导致您的任务不可靠。
正在填充一个构建变量以在脚本中设置内部版本号,可以使用$env:Build.BuildNumber
进行引用。
要设置内部版本号,请使用以下命令向控制台写一条特殊语句
$value = "$($env:Build.BuildNumber)_US`
Write-Host "##vso[build.updatebuildnumber]$Value"
或者,您可以从VSTS Variable Toolbox扩展中使用我的Set Variable任务。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.