TFS2018导出的构建定义json看起来与TFS构建定义对象的导出json不同

时间:2017-12-06 11:07:37

标签: tfs

临时解决方案我从TFS Web界面导出了构建定义json文件。为了比较,我从API导出了构建定义对象,并且json文件看起来不同,这就是问题所在。现在我将使用api对象json。

我安装了TFS2018,我正在导入一个导出的json构建文件,如下所示:

var filePath = "builddefinition.json";
                    var buildDef = JsonConvert.DeserializeObject<BuildDefinition>(File.ReadAllText(filePath)); 

文件导入成功。但是,不会导入步骤。以下是导出的json文件的一部分,显示了第一步。我总共有7个步骤。

"process": {
        "phases": [
            {
                "steps": [
                    {
                        "environment": {},
                        "enabled": true,
                        "continueOnError": false,
                        "alwaysRun": false,
                        "displayName": "Use NuGet 4.3.0",
                        "timeoutInMinutes": 0,
                        "condition": "succeeded()",
                        "refName": "NuGetToolInstaller1",
                        "task": {
                            "id": "2c645196a-524fd-4a402-92be8-d9d4837b7c5d",
                            "versionSpec": "0.*",
                            "definitionType": "task"
                        },
                        "inputs": {
                            "versionSpec": "4.3.0",
                            "checkLatest": "false"
                        }
                    },
                    {... more steps

但是如果我从api获得构建定义,我会得到所有步骤。

var buildDef = buildClient.GetDefinitionAsync("MyProject", builddefid);

在从json文件中读取步骤时,知道为什么步骤没有序列化到对象中?

1 个答案:

答案 0 :(得分:2)

从Web界面和对象API导出的Json文件的内容/格式不同。

因此,您需要在对中导出/导入构建定义json文件。这意味着从Web界面导出然后从Web界面导入,通过API导出,然后通过API再次导入。

本文供您参考:TFS 2015 clone/import/export build definition between team projects