Элементы WebLayout и Control
Azure DevOps Services | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018
Элемент WebLayout используется для определения макета и элементов управления, отображаемых в формах рабочих элементов, отображаемых на веб-портале. Он поддерживает новый интерфейс рабочего элемента. Он в дополнение к элементу Layout, который определяет элементы формы, которые отображаются при просмотре через Visual Studio и другие не веб-клиенты.
Важно!
Эта статья относится к моделям процессов размещенного XML и локального XML (TFS 2017 и более поздних версий). Сведения о TFS 2015 и более ранних версиях см. в справочнике по XML-элементу Layout.
Модель процесса наследования см. в разделе "Настройка процесса". Общие сведения о моделях процессов см. в статье "Настройка процесса отслеживания работы".
Элемент WebLayout является обязательным дочерним элементом элемента FORM . В этом разделе документируется элемент WebLayout и его дочерние элементы. Используйте это в качестве руководства для дальнейшей настройки определения WIT, содержащего новый раздел WebLayout . Дополнительные сведения об этих изменениях см. в записи блога о прекращении поддержки старой формы рабочего элемента в TFS.
Чтобы изменить веб-макет, используйте сведения, приведенные в этом разделе, для изменения XML-файла определения для определенного типа рабочего элемента. Сведения об импорте и экспорте изменений см. в статье "Настройка веб-формы отслеживания работы".
Сведения о настройке макета клиента Windows см. в разделе "Xml-элемент Layout".
Включение новой формы и раздела WebLayout
При включении развертывания новой формы xml-определения для всех типов рабочих элементов (WIT) в коллекции обновляются, чтобы включить раздел WebLayout в раздел FORM .
Новая форма предоставляет несколько новых возможностей, как описано в статье "Новый рабочий элемент". Администратор учетной записи или коллекции проектов управляет переходом на новую форму.
- Для модели процесса наследования переключение на новую форму автоматически выполняется для всех учетных записей пользователей.
- Для модели размещенного XML-процесса администратор должен включить новую форму.
- Для TFS 2017 новая форма автоматически становится доступной при добавлении проектов в новую коллекцию. Для существующих проектов администратор должен включить новую форму.
- Для TFS 2015 новая форма недоступна. Для доступа к новой форме необходимо обновить до TFS 2017 или более поздней версии .
Сводка по элементам и атрибутам
Элементы WebLayout и обновленные элементы Control представляют несколько новых элементов и устареют несколько элементов и атрибутов. В целом, это гораздо более простая структура синтаксиса, чем ее предшественник.
Новые элементы | Поддерживаемые элементы | Устаревшие элементы | Нерекомендуемые атрибуты |
---|---|---|---|
— ControlContribution — GroupContribution — Входные данные — входные данные - Страница — PageContribution — Раздел — SystemControls — WebLayout |
- ФОРМА — Макет — Группа — элемент управления |
— Столбец - Разделитель — Вкладка — TabGroup |
— ControlSpacing — FixedWidth — LabelPosition — LabelSpacing - Поле - MinimumSize — Заполнение — PercentWidth |
Совет
Элемент Page похож на устаревший элемент Tab . Однако элемент Page нельзя сгруппировать или вложить. Одна страница определяет одну вкладку в веб-форме.
Настройка заголовка
В новом макете веб-формы система управляет несколькими элементами заголовка в элементе SystemControls . К ним относятся следующие объекты.
- Поля: идентификатор рабочего элемента, заголовок, назначенный, состояние, причина, путь к области, путь итерации и теги
- Страницы:
журнал,
ссылки и
вложения.
При экспорте определения WIT вы увидите раздел SystemControls в начале раздела WebLayout , как показано ниже.
<WebLayout ShowEmptyReadOnlyFields="true">
<SystemControls>
<Control Type="FieldControl" FieldName="System.Title" EmptyText="Enter title" />
<Control Label="Assi&gned To" Type="FieldControl" FieldName="System.AssignedTo" />
<Control Label="Stat&e" Type="FieldControl" FieldName="System.State" />
<Control Label="Reason" Type="FieldControl" FieldName="System.Reason" />
<Control Label="&Area" Type="WorkItemClassificationControl" FieldName="System.AreaPath" />
<Control Label="Ite&ration" Type="WorkItemClassificationControl" FieldName="System.IterationPath" />
<Control Label="History" Type="WorkItemLogControl" FieldName="System.History" />
<Control Label="Links" Type="LinksControl" Name="Links" />
<Control Label="Attachments" Type="AttachmentsControl" Name="Attachments" />
</SystemControls>
...
Примечание
Элемент Link не является допустимым элементом в разделе SystemControls.
Для TFS 2017 локальная модель XML-процессов: вы можете изменить элементы в разделе SystemControls , например изменить значение атрибута EmptyText для поля System.Title . Как правило, мы рекомендуем не настраивать этот раздел гораздо больше, чем это. Например, вы не можете удалить поля из этого раздела или добавить другие поля.
Для TFS 2018 локальный XML и Azure DevOps Services модели процессов размещенного XML: можно указать атрибут ShowEmptyReadOnlyFields или скрыть или заменить поля, определенные в разделе SystemControls.
Например, чтобы скрыть поле Reason, измените элемент Control с помощью атрибута Visible
.
<Control Label="Reason" Type="FieldControl" FieldName="System.Reason" Visible="false" />
Чтобы заменить поле Reason другим полем, используйте Replaces
атрибут. Кроме того, удалите запись для поля "Причина" из раздела.
<Control Label="Milestone" Type="FieldControl" FieldName="Fabrikam.Milestone" Replaces="System.Reason" />
Можно скрыть или заменить поля "Причина", "Путь к области" и "Путь итерации". Эти поля можно добавить, если вы хотите, на страницу сведений или другую пользовательскую страницу. Вы не можете скрыть или заменить поля "Заголовок", "Кому назначено" или "Состояние".
Пример WebLayout
В следующем примере показана общая структура раздела WebLayout в разделе FORM . WebLayout указывает элемент Control для каждого поля, которое вы хотите отображать в форме.
Элементы группируются в пределах страницы с помощью элементов Section и Group . Элемент Control используется для определения каждого поля или элемента управления, которое вы хотите отображать в форме.
В следующем примере указывается синтаксис страницы сведений, показанной ранее в этом разделе.
<FORM>
. . .
<WebLayout>
<SystemControls>
<Control Type="FieldControl" FieldName="System.Title" EmptyText="Enter title" />
<Control Label="Assi&gned To" Type="FieldControl" FieldName="System.AssignedTo" />
<Control Label="Stat&e" Type="FieldControl" FieldName="System.State" />
<Control Label="Reason" Type="FieldControl" FieldName="System.Reason" />
<Control Label="&Area" Type="WorkItemClassificationControl" FieldName="System.AreaPath" />
<Control Label="Ite&ration" Type="WorkItemClassificationControl" FieldName="System.IterationPath" />
<Control Label="History" Type="WorkItemLogControl" FieldName="System.History" />
<Control Label="Links" Type="LinksControl" Name="Links" />
<Control Label="Attachments" Type="AttachmentsControl" Name="Attachments" />
</SystemControls>
<Page Label="Details" LayoutMode="FirstColumnWide">
<Section>
<Group Label="Description">
<Control Label="Description" Type="HtmlFieldControl" FieldName="System.Description" />
</Group>
</Section>
<Section>
<Group Label="Planning">
<Control Label="Story Points" Type="FieldControl" FieldName="Microsoft.VSTS.Scheduling.StoryPoints" />
<Control Label="Priority" Type="FieldControl" FieldName="Microsoft.VSTS.Common.Priority" />
</Group>
<Group Label="Classification">
<Control Label="Value area" Type="FieldControl" FieldName="Microsoft.VSTS.Common.ValueArea" />
</Group>
</Section>
<Section>
<Group Label="Development">
<Control Type="LinksControl" Name="Development">
<LinksControlOptions ViewMode="Dynamic" ZeroDataExperience="Development" ShowCallToAction="true">
<ListViewOptions GroupLinks="false">
</ListViewOptions>
<LinkFilters>
<ExternalLinkFilter Type="Build" />
<ExternalLinkFilter Type="Pull Request" />
<ExternalLinkFilter Type="Branch" />
<ExternalLinkFilter Type="Fixed in Commit" />
<ExternalLinkFilter Type="Fixed in Changeset" />
<ExternalLinkFilter Type="Source Code File" />
</LinkFilters>
</LinksControlOptions>
</Control>
</Group>
<Group Label="Related Work">
<Control Type="LinksControl" Name="Related Work">
<LinksControlOptions>
<LinkFilters>
<WorkItemLinkFilter Type="System.LinkTypes.Hierarchy-Reverse" />
<WorkItemLinkFilter Type="System.LinkTypes.Hierarchy-Forward" />
<WorkItemLinkFilter Type="System.LinkTypes.Related" />
</LinkFilters>
<Columns>
<Column Name="System.State" />
<Column Name="System.ChangedDate" />
<Column Name="System.Links.Comment" />
</Columns>
</LinksControlOptions>
</Control>
</Group>
</Section>
</Page>
</WebLayout>
</FORM>
Синтаксис элементов WebLayout
С помощью элементов, описанных в таблице, можно указать способ группировки информации и полей рабочего элемента, а также их представления в форме рабочего элемента.
<WebLayout ShowEmptyReadOnlyFields="true | false">
...
</WebLayout>
Атрибуты
Атрибут | Описание |
---|---|
ShowEmptyReadOnlyFields |
Необязательный атрибут элемента WebLayout . Укажите значение true для отображения только для чтения и пустых полей (по умолчанию) и false скрытия этих полей. |
Совет
Определение схемы для отслеживания рабочих элементов определяет все дочерние элементы FORM как верблюдю регистр и все остальные элементы как все прописные буквы. Если при проверке файлов определения типов возникнут ошибки, проверьте регистр элементов. Кроме того, структура открывающих и закрывающих тегов должна соответствовать правилам синтаксиса XML. Дополнительные сведения см. в справочнике по элементу Control XML.
Элемент
Описание
Управление
Необязательный дочерний элемент для группы в WebLayout. Определяет отображение в форме рабочего элемента поля, текста, гиперссылки или другого элемента управления.
<Control FieldName="FieldName" Type="DateTimeControl | ExtensionsControl |
FieldControl | HtmlFieldControl | LabelControl | WebpageControl"
Label="LabelText" EmptyText="TextString"
ReadOnly="True | False" Name="InstanceName" />
См. сведения об атрибутах элемента Control и типе элемента управления для каждого атрибута.
ControlContribution
Необязательный дочерний элемент group в WebLayout , используемый для указания расширения рабочего элемента на уровне поля, который будет отображаться в форме.
<ControlContribution Id="ContributionId" Label="Name">
<Inputs>
<Input Id="FieldName" Value="Value" />
</Inputs>
</ControlContribution>
Указанный идентификатор вклада должен быть установлен в учетной записи или коллекции проектов. Экспортируемые файлы определения WIT содержат список установленных вкладов.
Расширение
Обязательный дочерний элемент для расширений. Используется для указания идентификатора расширения элемента управления рабочими элементами для отображения в форме рабочего элемента. Необходимо указать каждое расширение, используемое в макете для элемента ControlContribution, GroupContribution или PageContribution .
<Extension Id="ExtensionId" />
Указанный идентификатор ExtensionId должен быть установлен в учетной записи или коллекции проектов. Экспортируемые файлы определения WIT содержат список установленных расширений.
Расширения
Необязательный дочерний элемент контейнера WebLayout , используемый для поддержки указания одного или нескольких элементов extension . Если расширения используются в форме, укажите их перед элементом Page .
<WebLayout >
<Extensions >
<Extension Id="ExtensionId" />
. . .
</Extensions>
. . .
</WebLayout>
ФОРМЫ
Обязательный дочерний элемент WITD , используемый для указания макета и элементов управления для отображения в форме рабочего элемента. Родительский элемент для элементов layout (макета клиентской формы) и WebLayout (макет веб-формы).
<FORM>
<Layout> . . . </Layout>
<WebLayout> . . . </WebLayout>
</FORM>
Группа
Обязательный дочерний элемент Section. Предоставляет визуальное группирование элементов в разделе, который можно пометить.
<Group Label="LabelText"
<Control> . . . </Control>
</Group>
GroupContribution
Необязательный дочерний элемент раздела< в WebLayout , используемый для указания расширения рабочего элемента на уровне группы для отображения в форме. Расширение будет отображаться как группа в форме.
<GroupContribution Id="ContributionId" Label="Name" />
Указанный идентификатор вклада должен быть установлен в учетной записи или коллекции проектов. Экспортируемые файлы определения WIT содержат список установленных вкладов.
Входные данные
Обязательный дочерний элемент для входных данных, указывающий входные данные для расширения.
<Input Id="FieldName" Value="Value" />
Входные данные
Необязательный дочерний элемент контейнера для ControlContribution , используемый для поддержки спецификации входных данных для расширения.
<Inputs>
<Input Id="FieldName" Value="Value" />
</Inputs>
Страница
Обязательный дочерний элемент WebLayout. Определяет макет страницы в веб-форме.
Укажите имя страницы и используемый макет.
<Page Label="PageName" LayoutMode="FirstColumnWide | EqualColumns ">
<Section>
<Group> . . .
<Control> . . . </Control>
<Control> . . . </Control>
</Group>
</Section>
</Page>
PageContribution
Необязательный дочерний элемент WebLayout , используемый для указания расширения рабочего элемента на уровне страницы для отображения в форме. Расширение будет отображаться как страница в форме.
<PageContribution Id="ContributionId" Label="Name" />
Указанный идентификатор вклада должен быть установлен в учетной записи или коллекции проектов. Экспортируемые файлы определения WIT содержат список установленных вкладов.
Раздел
Обязательный дочерний элемент Page. Определяет макет раздела на странице веб-формы. Группы форм разделов, поддерживающие изменение размера переменной. Ограничение в четыре раздела можно определить в пределах страницы.
<Page>
<Section>
<Group> . . .
<Control> . . . </Control>
<Control> . . . </Control>
</Group>
</Section>
</Page>
SystemControls
Обязательный дочерний элемент для WebLayout. Определяет метки и пустые текстовые значения для элементов управления, присутствующих в заголовке веб-формы. Сюда также входят метки для страниц журнала, ссылок и вложений.
<SystemControls>
<Control Type="FieldControl" FieldName="System.Title" EmptyText="Enter title" />
<Control Label="Assi&gned To" Type="FieldControl" FieldName="System.AssignedTo" />
<Control Label="Stat&e" Type="FieldControl" FieldName="System.State" />
<Control Label="Reason" Type="FieldControl" FieldName="System.Reason" />
<Control Label="&Area" Type="WorkItemClassificationControl" FieldName="System.AreaPath" />
<Control Label="Ite&ration" Type="WorkItemClassificationControl" FieldName="System.IterationPath" />
<Control Label="History" Type="WorkItemLogControl" FieldName="System.History" />
<Control Label="Links" Type="LinksControl" Name="Links" />
<Control Label="Attachments" Type="AttachmentsControl" Name="Attachments" />
</SystemControls>
WebLayout
Обязательный дочерний элемент FORM. Определяет макет формы рабочего элемента, отображаемой на веб-портале. Включает один или несколько элементов Page .
<WebLayout>
<Page>
<Section>
<Group> . . .
<Control> . . . </Control>
<Control> . . . </Control>
</Group>
</Section>
</Page>
. . .
</WebLayout>
Синтаксис элемента control
Элемент Control используется для определения поля рабочего элемента, текста, гиперссылки или другого типа формы для отображения в форме рабочего элемента. Элемент Control , указанный в разделе WebLayout , должен соответствовать следующему синтаксису:
<Control FieldName="FieldRefName" Type="DateTimeControl | FieldControl |
HtmlFieldControl | LabelControl | WebpageControl Label="LabelText"
LabelPosition="Top | Bottom | Left | Right" EmptyText="TextString"
ReadOnly="True | False" Name="InstanceName" [Visible="false" |
FieldName="ReplacementFieldRefName" Replaces="FieldRefName"] />
Синтаксис атрибута элемента control
Attribute
Описание
Fieldname
Необязательный элемент. Определяет поле рабочего элемента, с которым связывается элемент управления. Укажите имя ссылки поля, которое должно находиться в диапазоне от 1 до 70 символов.
Тип
Обязательный элемент. Определяет тип данных элемента управления. Укажите строку из одного из этих встроенных типов:
- DateTimeControl: используется для отображения форматированных полей даты с типом поля DateTime.
- FieldControl: используется для отображения логических значений, обычного текста, числовых полей, полей имени пользователя и списков выбора. Поддерживает поля с типом данных boolean, Double, Identity, Integer, PlainText и String.
Примечание
Доступность компонентов: Поле логического типа данных поддерживается для TFS 2017 и более поздних версий.
- HtmlFieldControl: используется для отображения многострочного форматированного текста полей с типом ПОЛЯ HTML.
- LabelControl: используется для отображения текста, не связанного с полем. Текст может быть обычным или в виде гиперссылок. Можно указать дополнительные элементы управления с помощью элементов LabelText, Link и Text .
- Веб-элементControl: используется для отображения содержимого на основе HTML, определенного универсальным кодом ресурса (URI) или внедренного в тег CDATA. С этим элементом управления не связано никакое поле или тип поля. Вы указываете содержимое и ссылки для отображения с помощью элемента Веб-элементаControlOptions .
EmptyText
Необязательный элемент. Задает текстовую строку длиной от 1 до 255 символов, которая появляется при отсутствии значения в поле.
Label
Необязательный элемент. Задает отображаемый в форме текст, определяющий элемент управления. Введите строку, длина которой не превышает 80 символов. Если оно не указано, используется понятное имя FieldName
.
ReadOnly
Необязательный элемент. Указывает, что поле доступно только для чтения:
- True: поле управления доступно только для чтения.
- False: поле управления не доступно только для чтения.
имя;
Необязательный элемент. Является уникальным идентификатором элемента управления. Имя важно, если несколько элементов управления в форме связаны с одним и тем же полем рабочего элемента.
Примечание
Атрибут Name используется, если вы хотите, чтобы одно и то же поле отображалось на нескольких страницах в форме. Вы указываете уникальное значение атрибута Name для обеих записей элемента управления, чтобы система однозначно идентифицирует каждый элемент управления.
Visible
Необязательный элемент. Укажите Visible="false"
, когда нужно скрыть поле, которое обычно включается в область заголовка. Этот атрибут можно указать только в сочетании с полями System.Reason, System.AreaPath или System.IterationPath. Если указать этот атрибут, нельзя указать Replaces
этот атрибут.
Заменяет
Необязательный элемент. Укажите FieldName="ReplacementFieldRefName" Replaces="FieldRefName"
, когда нужно заменить поле в области заголовка другим полем. Этот атрибут можно указать только в сочетании с полями System.Reason, System.AreaPath или System.IterationPath. Если указать этот атрибут, нельзя указать Visible
этот атрибут. Кроме того, необходимо удалить запись для поля, который вы заменяете в разделе.
Синтаксис атрибута control element Type
Тип
Описание
DateTimeControl
Используется для отображения форматированных полей даты с типом DateTime
данных .
Используется FieldControl
для предоставления текстового поля для ввода или отображения поля DateTime.
<Control FieldName=" MyCompany.Group1.StartDate " Type="FieldControl"
Label="Start Date" LabelPosition="Left" />
Используется DateTimeControl
для предоставления средства выбора календаря для выбора даты для поля, как показано на следующем рисунке.
<Control Type="DateTimeControl" FieldName="FabrikamFiber.Schedule.SubmittedDate"
Label="Submitted Date:" LabelPosition="Left" Format="Short" />
Примечание
Формат даты и времени соответствует профилю пользователя профиля пользователя. Раздел WebLayout не принимает свойство элемента CustomFormat
Layout.
FieldControl
Используется для отображения полей с типом логических значений, string, Identity, Integer, Double и PlainText. Пример:
<Control Type="FieldControl" FieldName="FabrikamFiber.Milestone"
Label="Milestone" Name="Milestone" LabelPosition="Left" />
Доступность компонентов: Логическое поле типа данных поддерживается только для TFS 2017 и более поздних версий. В форме клиентского рабочего элемента, например Visual Studio или Eclipse, отобразится значение True или False.
Логическое поле отображается как флажок в форме веб-рабочего элемента.
HTMLFieldControl
Используется для отображения многострочного форматированного элемента управления. Укажите этот тип элемента управления для полей Type=HTML
.
Пример:
<Control Type="HtmlFieldControl" FieldName="FabrikamFiber.ReleaseNotes"
Label="Release Notes" Dock="Fill" />
LabelControl
Используется для отображения текста, не связанного с полем. Текст может быть обычным или в виде гиперссылок. С помощью элементов LabelText, Link и Text можно указать дополнительные элементы управления. См. справочные материалы по элементам LabelText и Text XML , ссылки на элементы Link и Param XML.
WebpageControlOptions
Используется для отображения содержимого на основе HTML, определенного универсальным кодом ресурса (URI) или внедренного в тег CDATA. С этим элементом управления не связано никакое поле или тип поля. Вы указываете содержимое и ссылки для отображения с помощью элемента WebpageControlOptions .
Элемент WebpageControlOptions и его дочерние элементы имеют следующую структуру синтаксиса:
<WebpageControlOptions AllowScript="true | false" ReloadOnParamChange="true | false" >
<Link UrlRoot="UrlRoot" UrlPath ="UrlPathWithParameters" >
<Param index="IndexValue" value="ParamValue" type ="Original | Current">
</Link>
<Content>
<![CDATA[Contents of HTML]]/>
<Content/>
<WebpageControlOptions/>
Элементы Content, LabelText и Link используются для определения обычного текста или гиперссылок, добавления гиперссылок в поле или отображения содержимого веб-страницы в форме рабочего элемента. Дополнительные сведения о синтаксисе см. в статье "Предоставление текста справки, гиперссылок или веб-содержимого в форме рабочего элемента ".
Похожие статьи
Если вы только начинаете работу с новой формой, ознакомьтесь со следующими дополнительными разделами для управления развертыванием или его настройкой:
- Управление развертыванием новой формы
- Новый интерфейс рабочего элемента
- Настройка новой формы (размещенные модели XML и локальных xml-процессов)
- Элементы LinksControlOptions
Дополнительные сведения о моделях процессов и поддерживаемых с каждым из них см. в разделе "Настройка процесса отслеживания работы".
Расширения Marketplace
Посетите Azure DevOps Marketplace, чтобы найти расширения, которые можно использовать.
Расширения форм
Элементы ControlContribution, GroupContribution и PageContribution ссылались на Id
вклад расширений, установленных для коллекции проектов или учетной записи. Расширение устанавливается из Visual Studio Marketplace. Сведения о создании расширения см. в разделе "Создание первого расширения".
После установки расширений добавьте элемент Contribution в определение XML для типа рабочего элемента. Эти файлы экспортируются путем экспорта процесса или экспорта файла определения WIT.
При экспорте определения XML он будет содержать раздел комментариев, в котором перечислены установленные расширения, их идентификаторы и все необходимые входные данные. Пример:
<!--**********************Work Item Extensions**********************
Extension:
Name: color-control-dev
Id: mariamclaughlin.color-control-dev
Control contribution:
Id: mariamclaughlin.color-control-dev.color-control-contribution
Description:
Inputs:
Id: FieldName
Description: The field associated with the control.
Type: Field
IsRequired: true
Id: Labels
Description: The list of values to select from.
Type: String
IsRequired: false
Id: Colors
Description: The field associated with the control.
Type: String
IsRequired: false
Extension:
Name: vsts-workitem-recentlyviewed
Id: mmanela.vsts-workitem-recentlyviewed
Group contribution:
Id: mmanela.vsts-workitem-recentlyviewed.recently-viewed-form-group
Description: Recently viewed work item form group
Extension:
Name: vsts-extensions-multi-values-control
Id: ms-devlabs.vsts-extensions-multi-values-control
Control contribution:
Id: ms-devlabs.vsts-extensions-multi-values-control.multi-values-form-control
Description: Multi Values Selection Control.
Inputs:
Id: FieldName
Description: The field associated with the control.
Type: Field
IsRequired: true
Id: Values
Description: The list of values to select from.
Type: String
IsRequired: false
Extension:
Name: vsts-extension-workitem-activities
Id: ms-devlabs.vsts-extension-workitem-activities
Extension:
Name: vsts-uservoice-ui
Id: ms-devlabs.vsts-uservoice-ui
Group contribution:
Id: ms-devlabs.vsts-uservoice-ui.vsts-uservoice-ui-wi-group
Description: Shows User Voice details on the work item form
-->
Учитывая приведенный выше пример, можно добавить следующий фрагмент кода в определение типа рабочего элемента, чтобы включить расширение группы vsts-uservoice-ui
голосовых данных пользователя, указав идентификатор расширения:
<WebLayout>
...
<Extensions>
<Extension Id="ms-devlabs.vsts-uservoice-ui" />
</Extensions>
...
</WebLayout>
После импорта обновленного определения WIT расширение группы автоматически появится в форме рабочего элемента.
При следующем экспорте определения WIT вы увидите, что GroupContribution
элемент добавлен. Этот элемент можно переместить в WebLayout
разделе так же, как и любой другой элемент управления.