在team foundation 2015 API

时间:2015-10-15 07:24:17

标签: api powershell tfs build asp.net-core

我正忙于配置新的TFS 2015服务器(内部部署)并尝试使新的vnext构建工作正常。 我现在拥有的是一些额外的PowerShell脚本,可以增加我的程序集的版本号。 它还通过调用API方法来更改TFS中的buildnumber(请参阅tfs rest api)。我的json主体只发送新的内部版本号(例如{“buildNumber”:“1.0.1.1234”}),这样可以正常工作。

现在我在版本的构建定义中添加了一些major,minor和patch版本变量。一旦构建完成,这应该更新,所以我想做同样的事情,只是发送更新API调用到相应的builddefinition端点。文档说修订号是强制性的,所以我添加了。其余的我只添加了变化的变量。 api调用有效,但令人讨厌的是它会更新整个定义并清除我在json体中没有提供的所有其他设置。我还尝试通过API首先获得定义,更改变量的json值并将其发送回来,但这也不正确。

那么有人知道一个很好的解决方案吗?

作为一种解决方法,我现在所做的是添加一个虚拟构建定义(例如“_ProjectVersion”),除了变量之外完全是空的,我的构建任务现在使用该构建定义来获取最新版本号并更新它们。所以api调用仍然会清空整个构建定义,但因为它只包含我的变量,所以我不介意。

1 个答案:

答案 0 :(得分:0)

我也在powershell中这样做,因为所有脚本都应该自动化并在powershell中完成 我遇到的问题是,在powershell中管理时,获取现有BuildDefinition的json的API调用将返回无效的json。
例如,"@{multipliers=[];将失败,并且必须至少有一个值'即使是一个“json”验证器'可以报​​告为有效。正确的json是{"multipliers": "[]",