Мы переходим с локальной TFS2015 на TFS2018U1, и я борюсь с новым определением WebLayout.
У нас есть несколько сильно настроенных типов рабочих элементов для отслеживания наших больших проектов, настраиваемый тип рабочих элементов.выше эпического уровня.Механизм состояния в этих WIT является сложным, поэтому я хотел бы показать диаграмму в рабочем элементе, которая показывает рабочий процесс.Простое встраивание с CDATA
не дало мне достаточного контроля для настройки размера содержащего изображения, поэтому я написал простое расширение, чтобы дать мне больше контроля над этим дисплеем.Содержание расширения работает правильно;Моя проблема связана с неожиданным поведением в рабочем элементе 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>
Моя проблема заключается в том, что два неиспользуемых вклада расширения добавляются в каждый тип рабочего элемента.Например, когда я просматриваю рабочий элемент Project Type 1, я вижу рабочий процесс / изображение Project Type 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 для добавления неиспользуемых расширений в случайные части моего веб-макета?