Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Team Foundation 2015 API中更新生成定义_Api_Powershell_Tfs_Build_Asp.net Core - Fatal编程技术网

在Team Foundation 2015 API中更新生成定义

在Team Foundation 2015 API中更新生成定义,api,powershell,tfs,build,asp.net-core,Api,Powershell,Tfs,Build,Asp.net Core,我正忙于配置新的TFS 2015服务器(内部部署),并尝试使新的vnext版本正常工作。 我现在有一些额外的powershell脚本,它们增加了程序集的版本号。 它还通过调用API方法更改TFS中的buildnumber(请参阅)。我的json正文只发送新的内部版本号(例如{“buildNumber”:“1.0.1.1234”}),这样就可以了 现在,我在版本的构建定义中添加了一些主要、次要和补丁版本变量。一旦构建完成,这应该被更新,所以我想做同样的事情,只需向相应的builddefinitio

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

现在,我在版本的构建定义中添加了一些主要、次要和补丁版本变量。一旦构建完成,这应该被更新,所以我想做同样的事情,只需向相应的builddefinition端点发送一个更新API调用。文件上说修订号是强制性的,所以我补充了这一点。剩下的我只添加了更改过的变量。 api调用可以工作,但令人讨厌的是,它将更新整个定义并清除我在json正文中没有提供的所有其他设置。我还尝试首先通过API获取定义,更改变量的json值并将其发送回,但这也不正确

有人知道解决这个问题的好办法吗


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

我也在powershell中这样做,因为所有脚本都应该在powershell中自动完成。
我遇到的问题是,获取现有BuildDefinition的json的API调用在powershell中管理时返回无效的json。

例如,
“@{multipliers=[];
将以“必须至少有一个值”失败,即使“json验证器”可能报告为有效。正确的json是
{“multipliers”:“[]”,

,请回答您的问题:但令人讨厌的是,它将更新整个定义,并清除我在json正文中没有提供的所有其他设置”,您得到了哪些意外更改?以及您的json文件中的任何细节,我们可以使用这些细节来重现您的问题?我使用了一个json正文,如“{id:2,revision:15,variables:{MajorVersion:{value:1},Minorversion:{value:'1'}…}这将仅在生成定义中保存这些值,并删除我以前的所有设置(与所有生成步骤一样)。我尝试的另一种方法是首先对生成定义执行GET。使用我的值更改json响应,然后再将其放回。然后我收到异常消息,如触发器数组必须至少有一个值。@chrisism我也遇到了与您相同的问题。如果您将api返回给您,您会期望得到它所提供的内容它可以工作,但显然不行。我也在尝试让它工作,所以如果我管理它,我会更新你。是的,这也是我遇到的问题。它看起来不像正确的JSON。我必须说,放弃尝试以正确的方式来做,使用空的AppVersion构建模板对我来说仍然是完美的。因为我已经一个夜间构建和一个发布构建都需要这些版本号,只使用一个模板就足够了。我不在乎它每次都被完全拆除,因为我只需要访问这些变量。如果MS在构建API中添加一些特殊变量支持,那将是一件好事。