自定义任务选项列表不会在活动版本中显示,但会在定义

时间:2018-06-13 17:46:14

标签: tfs task tfs2018

我们的自定义任务在我们的发布流程中表现出一些奇怪的行为。我们的输入之一是有20个选项的选项列表。此外,只有在选项列表中选择“其他”选项时,才会显示文本字段。这是task.json的相关部分(有些是匿名的)

{
  "name": "Site",
  "type": "picklist",
  "label": "Site Name",
  "defaultValue": "",
  "required": false,
  "helpMarkDown": "Site name - choose 'Other' if desired site is not available",
  "groupName": "GeneralGroup",
  "options": {
    "SITE_1": "SITE_1",
    "SITE_2": "SITE_2",
    "SITE_3": "SITE_3",
    "SITE_4": "SITE_4",
    "SITE_5": "SITE_5",
    "SITE_6": "SITE_6",
    "SITE_7": "SITE_7",
    "SITE_8": "SITE_8",
    "SITE_9": "SITE_9",
    "SITE_10": "SITE_10",
    "SITE_11": "SITE_11",
    "SITE_12": "SITE_12",
    "SITE_13": "SITE_13",
    "SITE_14": "SITE_14",
    "SITE_15": "SITE_15",
    "SITE_16": "SITE_16",
    "SITE_17": "SITE_17",
    "SITE_18": "SITE_18",
    "SITE_19": "SITE_19",
    "Other": "Other"
  }
},
{
  "name": "CustomSite",
  "type": "string",
  "label": "Custom Site Name",
  "defaultValue": "",
  "required": false,
  "helpMarkDown": "Custom site name - if not provided, current site will be used",
  "groupName": "GeneralGroup",
  "visibleRule": "Site = Other"
},

任务输入在编辑发布定义时运行良好,如此处所示

标准网站选择 enter image description here

其他选中 enter image description here

问题在于我们编辑活动版本,并从该视图查看任务。由于某种原因,下拉列表不会出现在屏幕上。有一个部分可用,但缺少下拉列表。另一个选项列表(环境)显示正常。

缺少下拉菜单? enter image description here

我们不确定这里发生了什么,或者如何解决它。其他具有附加到其选项列表的可见规则的任务(例如Nuget)似乎没有表现出这种行为。关于这可能是什么的任何想法?我们在内部使用TFS 2018,更新1。

谢谢

编辑:回答以下问题

  1. 我尝试从头开始创建一个全新的版本定义,以及一个全新的版本。在从新定义创建的新​​版本中,我继续看到所描述的行为
  2. 只是为了澄清,这项任务并没有从发布中完全消失。从活动版本中查看环境时,只有这一个选项列表选项不存在。
  3. 构建定义似乎表现正常。我没有看到编辑构建实例的任务的方法,因此我无法确认选项列表是否与发布实例中的行为相同。但是,构建定义本身与发布定义一起正常运行。
  4. 我确实尝试过几次页面刷新,同时从另一台计算机上查看同事。在所有情况下,发布实例视图中都没有这个选项列表。
  5. 除了好奇之外,我还看到了另一件事,就是视图背后的HTML。当我比较一个正在运行的选项列表和一个问题列表时,我发现输入控件刚刚完全丢失

    工作
    enter image description here

    破碎
    enter image description here

    编辑2018-06-18:

    我尝试了更多选项和变体列表,试图找出可以解释环境和网站之间不同行为的任何特征。我测试了标签中的空格是否重要,默认设置/未设置,必需的真/假,我们在选择列表值中的下划线,选择列表的各种长度(从5个项目到20个的所有内容),以及从帮助中删除撇号文本。几乎不知道接下来会尝试什么......

    enter image description here

2 个答案:

答案 0 :(得分:1)

经过多次试验和错误后,我发现答案明显在我脸上

  "type": "picklist",

错了

  "type": "pickList",

是对的。 TFS似乎同时接受这两者,并且在Release和Build定义屏幕上都正确呈现,但只有pickList(大写L)才能在发布实例屏幕上正确呈现。

答案 1 :(得分:0)

如果效果很好,建议您先使用新添加的版本进行测试。如果问题与特定版本相关,这将缩小范围。

同时打开和关闭,重新打开该特定版本。如果它应该是间歇性问题,刷新应该修复它。

此外,如果出现意外修改,建议您浏览发布定义的历史记录。如果某些内容导致更改定义,则应将其显示为更新,并可能提供有关这些任务消失的原因的一些线索。

然后还要检查这些自定义任务是否也缺少相应构建定义中的选项列表。

一种可能性,此选项列表的任务是在创建活动发布后开发的。所以这些变化无法同步。在这种情况下,您可以创建一个全新的版本并包含此任务。这应该可以解决问题。