如何在 Powershell 中指定 TFS 构建选项?

How to specify TFS Build Options in Powershell?

我正在使用 TFS 编辑构建定义然后将其排队。我拥有获取构建服务器和构建本身所需的一切。我什至可以对构建进行排队,但我不知道如何指定一个选项。这些构建是封闭的,当我手动将它们排队时,我必须在这样做时指定 "Latest Sources",而不是 "Latest Sources with Shelvesets",这似乎是默认值。

以下是我手动对构建进行排队时所点击内容的示例。

以下是我目前编写的代码:

$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”) 

此代码有效,但我不知道如何在 "Latest Sources with Shelveset" 上指定 "Latest Sources" 选项。有人可以帮忙吗?

根据我的测试,如果 ShelvesetName 为 null,它将使用最新源构建 project/solution,我们可以检查构建日志是否使用带有搁置集的最新源构建项目(不包含有关信息搁置集(如果使用最新源构建队列)。

对于 Gated Check-in 构建,当我们通过 VS 对构建进行排队时,默认选项是带有 shelfset 的最新源 UI,但是我们必须使用带有 shelfset 选项的最新源指定 shelfset 名称,否则我们不能' t队列构建。换句话说,带有搁置集选项的最新源需要搁置集名称。

因此,通过 TFS 对构建进行排队 API,我们只需要让 ShelvesetName 为空即可使用最新源对构建进行排队。