【发布时间】:2018-06-06 23:55:39
【问题描述】:
我们正在将本地 TFS2015 迁移到 TFS2018U1,我正在与新的 WebLayout 定义作斗争。
我们有一些高度自定义的工作项类型来跟踪我们的大型项目,这是一种高于 Epic 级别的自定义工作项类型。这些 WIT 中的状态引擎很复杂,所以我想在显示工作流的工作项中显示一个图表。简单地嵌入带有 CDATA 的 a 并没有给我足够的控制来调整包含图像的大小,所以我编写了一个简单的扩展来让我更好地控制这个显示。扩展的内容工作正常;我的问题是工作项 WebLayout 中的意外行为。
我们有三种项目类型,所以我的扩展在 vss-extension.json 中有三个贡献(名称已更改):
"contributions": [
{
"id": "projects.type1.workflow-group",
"type": "ms.vss-work-web.work-item-form-group",
"targets": [
"ms.vss-work-web.work-item-form"
],
"properties": {
"name": "Project Type 1 Workflow",
"uri": "project-type-1-workflow-group.html",
"height": 800
}
}, {
"id": "projects.type2.workflow-group",
"type": "ms.vss-work-web.work-item-form-group",
"targets": [
"ms.vss-work-web.work-item-form"
],
"properties": {
"name": "Project Type 2 Workflow",
"uri": "project-type-2-workflow-group.html",
"height": 800
}
}, {
"id": "projects.type3.workflow-group",
"type": "ms.vss-work-web.work-item-form-group",
"targets": [
"ms.vss-work-web.work-item-form"
],
"properties": {
"name": "Project Type 3 Workflow",
"uri": "project-type-3-workflow-group.html",
"height": 800
}
}
我的三个不同的工作项类型定义然后每个调用这些扩展之一:
<WebLayout>
<Extensions>
<Extension Id="MyAccount.web-layout" />
</Extensions>
<Page Label="Page1">
...
</Page>
<Page Label="Page2">
...
</Page>
<Page Label="Page3">
<Section>
...
</Section>
<Section>
<GroupContribution Id="MyAccount.web-layout.projects.project1.workflow-group" Label="Workflow" />
</Section>
</Page>
...
</WebLayout>
我的问题是两个未使用的扩展贡献被注入到每个工作项类型中。例如,当我查看项目类型 1 工作项时,我看到项目类型 1 工作流/图像在我想要的位置,但其他两个工作流/图像被注入到 WebLayout 的第一页,尽管工作项类型定义不引用它们;当我导入工作项类型定义时它们不存在,当我将它们导出回来时它们神奇地出现了。
当我将工作项类型定义导出回 TFS 时,有两个 GroupContribution 标签注入到第一页的第二部分(第一部分是 System.Description,它也是由 TFS 注入的,它是一个单独的问题):
<GroupContribution Label="Project Type 2 Workflow" Id="MyAccount.web-layout.projects.project2.workflow-group" />
<GroupContribution Label="Project Type 3 Workflow" Id="MyAccount.web-layout.projects.project3.workflow-group" />
我宁愿不为我想使用的每个 GroupContribution 构建单独的扩展;我可以创建一个单独的 GroupContribution 来动态确定要显示的图像,但是如果我想开始添加其他 GroupContribution(或 PageContribution 等)内容,我担心我会遇到同样的问题。
如何使用具有多个贡献的扩展,而不让 MS / TFS 将未使用的扩展注入我的 Web 布局的随机部分?
【问题讨论】:
-
您是否先以旧形式自定义工作项,然后升级到 TFS 2018 并转移到新形式?还是直接自定义新的表单工作项?
-
旧的工作项不支持
,所以我添加了它并将其导入到我们的测试 2018 实例中。 2015 和 2018 变体之间的唯一区别是整个 部分和这个新扩展。
标签: tfs