我使用TFS编辑构建定义然后对其进行排队。我拥有获得构建服务器和构建本身所需的一切。我甚至可以对一个版本进行排队,但是当我这样做时,我不知道如何指定一个选项。构建是Gated,当我手动排队时,我必须指定" Latest Sources"当我这样做时,不是"搁置的最新消息来源"这似乎是默认的。
以下是我手动排队时我点击的示例。
以下是我目前编码的内容:
$teamProjectCollection = [Microsoft.TeamFoundation.Client.TfsTeamProjectCollectionFactory]::GetTeamProjectCollection("$serverURI")
$bs = $teamProjectCollection.GetService([type]"Microsoft.TeamFoundation.Build.Client.IBuildServer")
$build = $bs.GetBuildDefinition("$project", "$template")
#Here is where I would do all of the build editing, but it's not important.
$request = $definition.CreateBuildRequest()
$bs.QueueBuild($request, “None”)
此代码有效,但我不知道如何指定"最新来源"通过Shelveset"的最新消息来源。有人可以帮忙吗?
答案 0 :(得分:1)
根据我的测试,如果ShelvesetName为null,它将使用最新源构建项目/解决方案,我们可以检查构建日志是否使用shelveset构建具有最新源的项目(如果队列构建,则不包含有关shelveset的信息最新来源)。
对于Gated Check-in构建,当我们通过VS UI对构建进行排队时,默认选项是带shelveset的最新源,但是我们必须使用shelveset选项指定最新源的shelveset名称,否则我们无法对构建进行排队。换句话说,shelveset名称是最新源和shelveset选项所必需的。
因此,通过TFS API对构建进行排队,我们只需要将ShelvesetName null设置为使用最新源进行队列构建。