通过工作项类型定义 xml 在工作项窗体中添加扩展

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

可以使用该工具将工作项类型导出为 xml witadmin ,其中包括工作项窗体的布局。 在本示例中,我们将添加页面、组和控件对布局的贡献。 我们还将控件添加到敏捷“用户情景”工作项类型。 有关详细信息,请参阅 WebLayout xml 参考

注意

仅 Azure DevOps Server 不支持通过 xml 进行工作项表单自定义,而不支持 Azure DevOps Services。

在工作项窗体中添加扩展

  1. 在 Azure DevOps Server 中安装工作项表单扩展。

  2. 打开 Developer Command Prompt。 使用以下命令将 xml 文件导出到桌面。

    witadmin exportwitd /collection:CollectionURL /p:Project /n:TypeName /f:FileName
    

    在指定的目录中创建一个文件。

  3. 在此文件中,转到 “WebLayout ”部分。 在 WebLayout 节中,注释 Blob 指定为集合安装哪些扩展目标工作项表单。 对于每个扩展,其所有表单贡献都列有其 ID 和输入(如果它是控制贡献)。 在以下示例中,注释显示 集合上安装的颜色控件开发 扩展。 该扩展有一个控制贡献,需要两个输入。

         <!--**********************************Work Item Extensions***************************
    
     Extension:
         Name: color-control-dev
         Id: example.color-control-dev
    
         Control contribution:
             Id: example.color-control-dev.color-control-contribution
             Description:
             Inputs:
                 Id: FieldName
                 Description: The field associated with the control.
                 Type: Field
                 IsRequired: true
    
                 Id: Colors
                 Descriptions: The colors that match the values in the control.
                 Type: String
                 IsRequired: false
    
  4. “工作项扩展 ”部分中查找扩展 ID:

         <!--**********************************Work Item Extensions*************************** 
    
     Extension:
         Name: color-control-dev
         Id: example.color-control-dev
         ...
    
  5. 在“工作项扩展”部分下面添加扩展标记,如下所示,使扩展可供工作项窗体使用。 若要在窗体中放置贡献,必须在节中 Extensions 指定其扩展。

         <!--**********************************Work Item Extensions***************************
         ...
    
         Note: For more information on work item extensions use the following topic:
         https://go.microsoft.com/fwlink/?LinkId=816513
         -->
    
         <Extensions>
             <Extension Id="example.color-control-dev" />
         </Extensions>
    
  6. 在 xml 中指定扩展会自动将窗体内扩展中定义的页面贡献放在其中。 可以在以下示例中移动贡献内容。

添加页面贡献

    <Page Id="Details">
    <PageContribution Id="<page contribution id>" />
    ...       

添加组贡献

    <Page Id="Details">
    ...
        <Section>
        ...
            <GroupContribution Id="<group contribution id>" />
            ...

页面贡献和组贡献不能采用任何其他布局元素。

添加控件贡献

与页面贡献不同,在 xml 中指定扩展不会自动放置控件贡献。 若要在窗体中添加这些贡献,请在窗体中添加具有贡献标记。 以下示例将 ControlContribution 添加到 规划 组。

如果控件贡献定义了任何必需的输入,则用户必须为该输入提供值。 对于任何非必需的输入,用户可以决定是否将值设置为输入。 在以下示例中, FieldName 设置和 Colors 输入。

    <Page Id="Details">
    ...
        <Section>
        ...
            <Group Id="Planning">
            ...
                <ControlContribution Label="Priority" Id="example.color-control-dev.color-control-contribution">
                    <Inputs>
                        <Input Id="FieldName" Value="Microsoft.Azure DevOps Services.Common.Priority" />
                        <Input Id="Colors" Value="red;green" />
                    </Inputs>
                </ControlContribution>

                <Control Label="Risk" Type="FieldControl" FieldName="Microsoft.Azure DevOps Services.Common.Risk" />
  1. 使用 witadmin. 导入此 xml 文件。

    witadmin importwitd /collection:CollectionURL /p:Project /f:FileName

扩展是通过工作项表单配置的!