Office365 使用组的自定义选项卡开发外接程序Manifest.xml文件在桌面Excel 365上不起作用,但在联机Office 365上起作用

Office365 使用组的自定义选项卡开发外接程序Manifest.xml文件在桌面Excel 365上不起作用,但在联机Office 365上起作用,office365,ms-office,office-js,microsoft-teams,excel-addins,Office365,Ms Office,Office Js,Microsoft Teams,Excel Addins,我们已经为带有组的自定义选项卡开发了加载项Manifest.xml文件。 我们已经参考了下面的URL来开发它。 <!--Control. It can be of type "Button" or "Menu" --> <Control xsi:type="Button" id="Contoso.FunctionButton"> <!--Label for your button. resid

我们已经为带有组的自定义选项卡开发了加载项Manifest.xml文件。 我们已经参考了下面的URL来开发它。

            <!--Control. It can be of type "Button" or "Menu" -->
            <Control xsi:type="Button" id="Contoso.FunctionButton">
            <!--Label for your button. resid must point to a ShortString resource -->
              <Label resid="Contoso.FunctionButton.Label" />
              <Tooltip resid="Contoso.FunctionButton.Tooltip"/>
              <Supertip>
                 <!--ToolTip title. resid must point to a ShortString resource -->
                <Title resid="Contoso.FunctionButton.Label" />
                 <!--ToolTip description. resid must point to a LongString resource -->
                <Description resid="Contoso.FunctionButton.Tooltip" />
              </Supertip>
              <Icon>
                <bt:Image size="16" resid="Contoso.FunctionButton.Icon" />
                <bt:Image size="32" resid="Contoso.FunctionButton.Icon" />
                <bt:Image size="80" resid="Contoso.FunctionButton.Icon" />
              </Icon>
              <!--This is what happens when the command is triggered (E.g. click on the Ribbon). Supported actions are ExecuteFuncion or ShowTaskpane-->
              <!--Look at the FunctionFile.html page for reference on how to implement the function -->
              <Action xsi:type="ShowTaskpane">
              <!--Name of the function to call. This function needs to exist in the global DOM namespace of the function file-->
              <TaskpaneId>ButtonId1</TaskpaneId>
                <SourceLocation resid="Contoso.FunctionButton.Url" />
              </Action>
            </Control>

            <Control xsi:type="Button" id="Contoso.TaskpaneButton">
              <Label resid="Contoso.TaskpaneButton.Label" />
              <Tooltip resid="Contoso.TaskpaneButton.Tooltip" />
              <Supertip>
                <Title resid="Contoso.TaskpaneButton.Label" />
                <Description resid="Contoso.TaskpaneButton.Tooltip" />
              </Supertip>
              <Icon>
                <bt:Image size="16" resid="Contoso.TaskpaneButton.Icon" />
                <bt:Image size="32" resid="Contoso.TaskpaneButton.Icon" />
                <bt:Image size="80" resid="Contoso.TaskpaneButton.Icon" />
              </Icon>
              <Action xsi:type="ShowTaskpane">
                <TaskpaneId>Button2Id1</TaskpaneId>
                 <!--Provide a url resource id for the location that will be displayed on the task pane -->
                <SourceLocation resid="Contoso.Taskpane1.Url" />
              </Action>
            </Control>
        <!-- Menu example -->


          </Group>
          <Group id="Contoso.Tab1.Group2">
             <!--Label for your group. resid must point to a ShortString resource -->
            <Label resid="Contoso.Tab1.GroupLabel" />
            <Icon>
            <!-- Sample Todo: Each size needs its own icon resource or it will look distorted when resized -->
            <!--Icons. Required sizes 16,31,80, optional 20, 24, 40, 48, 64. Strongly recommended to provide all sizes for great UX -->
            <!--Use PNG icons and remember that all URLs on the resources section must use HTTPS -->
              <bt:Image size="16" resid="Contoso.TaskpaneButton.Icon" />
              <bt:Image size="32" resid="Contoso.TaskpaneButton.Icon" />
              <bt:Image size="80" resid="Contoso.TaskpaneButton.Icon" />
            </Icon>

            <!--Control. It can be of type "Button" or "Menu" -->
            <Control xsi:type="Button" id="Contoso.FunctionButton">
            <!--Label for your button. resid must point to a ShortString resource -->
              <Label resid="Contoso.FunctionButton.Label" />
              <Tooltip resid="Contoso.FunctionButton.Tooltip"/>
              <Supertip>
                 <!--ToolTip title. resid must point to a ShortString resource -->
                <Title resid="Contoso.FunctionButton.Label" />
                 <!--ToolTip description. resid must point to a LongString resource -->
                <Description resid="Contoso.FunctionButton.Tooltip" />
              </Supertip>
              <Icon>
                <bt:Image size="16" resid="Contoso.FunctionButton.Icon" />
                <bt:Image size="32" resid="Contoso.FunctionButton.Icon" />
                <bt:Image size="80" resid="Contoso.FunctionButton.Icon" />
              </Icon>
              <!--This is what happens when the command is triggered (E.g. click on the Ribbon). Supported actions are ExecuteFuncion or ShowTaskpane-->
              <!--Look at the FunctionFile.html page for reference on how to implement the function -->
              <Action xsi:type="ShowTaskpane">
              <!--Name of the function to call. This function needs to exist in the global DOM namespace of the function file-->
              <TaskpaneId>ButtonId1</TaskpaneId>
                <SourceLocation resid="Contoso.FunctionButton.Url" />
              </Action>
            </Control>

            <Control xsi:type="Button" id="Contoso.TaskpaneButton">
              <Label resid="Contoso.TaskpaneButton.Label" />
              <Tooltip resid="Contoso.TaskpaneButton.Tooltip" />
              <Supertip>
                <Title resid="Contoso.TaskpaneButton.Label" />
                <Description resid="Contoso.TaskpaneButton.Tooltip" />
              </Supertip>
              <Icon>
                <bt:Image size="16" resid="Contoso.TaskpaneButton.Icon" />
                <bt:Image size="32" resid="Contoso.TaskpaneButton.Icon" />
                <bt:Image size="80" resid="Contoso.TaskpaneButton.Icon" />
              </Icon>
              <Action xsi:type="ShowTaskpane">
                <TaskpaneId>Button2Id1</TaskpaneId>
                 <!--Provide a url resource id for the location that will be displayed on the task pane -->
                <SourceLocation resid="Contoso.Taskpane1.Url" />
              </Action>
            </Control>
        <!-- Menu example -->


          </Group>

          <!-- Label of your tab -->
          <!-- If validating with XSD it needs to be at the end, we might change this before release -->
          <Label resid="Contoso.Tab1.TabLabel" />
        </CustomTab>
      </ExtensionPoint>
developmentManifest.xml文件在office Online 365上运行良好,但当我们在Desktop Excel 365上导入该文件时,该文件不起作用

            <!--Control. It can be of type "Button" or "Menu" -->
            <Control xsi:type="Button" id="Contoso.FunctionButton">
            <!--Label for your button. resid must point to a ShortString resource -->
              <Label resid="Contoso.FunctionButton.Label" />
              <Tooltip resid="Contoso.FunctionButton.Tooltip"/>
              <Supertip>
                 <!--ToolTip title. resid must point to a ShortString resource -->
                <Title resid="Contoso.FunctionButton.Label" />
                 <!--ToolTip description. resid must point to a LongString resource -->
                <Description resid="Contoso.FunctionButton.Tooltip" />
              </Supertip>
              <Icon>
                <bt:Image size="16" resid="Contoso.FunctionButton.Icon" />
                <bt:Image size="32" resid="Contoso.FunctionButton.Icon" />
                <bt:Image size="80" resid="Contoso.FunctionButton.Icon" />
              </Icon>
              <!--This is what happens when the command is triggered (E.g. click on the Ribbon). Supported actions are ExecuteFuncion or ShowTaskpane-->
              <!--Look at the FunctionFile.html page for reference on how to implement the function -->
              <Action xsi:type="ShowTaskpane">
              <!--Name of the function to call. This function needs to exist in the global DOM namespace of the function file-->
              <TaskpaneId>ButtonId1</TaskpaneId>
                <SourceLocation resid="Contoso.FunctionButton.Url" />
              </Action>
            </Control>

            <Control xsi:type="Button" id="Contoso.TaskpaneButton">
              <Label resid="Contoso.TaskpaneButton.Label" />
              <Tooltip resid="Contoso.TaskpaneButton.Tooltip" />
              <Supertip>
                <Title resid="Contoso.TaskpaneButton.Label" />
                <Description resid="Contoso.TaskpaneButton.Tooltip" />
              </Supertip>
              <Icon>
                <bt:Image size="16" resid="Contoso.TaskpaneButton.Icon" />
                <bt:Image size="32" resid="Contoso.TaskpaneButton.Icon" />
                <bt:Image size="80" resid="Contoso.TaskpaneButton.Icon" />
              </Icon>
              <Action xsi:type="ShowTaskpane">
                <TaskpaneId>Button2Id1</TaskpaneId>
                 <!--Provide a url resource id for the location that will be displayed on the task pane -->
                <SourceLocation resid="Contoso.Taskpane1.Url" />
              </Action>
            </Control>
        <!-- Menu example -->


          </Group>
          <Group id="Contoso.Tab1.Group2">
             <!--Label for your group. resid must point to a ShortString resource -->
            <Label resid="Contoso.Tab1.GroupLabel" />
            <Icon>
            <!-- Sample Todo: Each size needs its own icon resource or it will look distorted when resized -->
            <!--Icons. Required sizes 16,31,80, optional 20, 24, 40, 48, 64. Strongly recommended to provide all sizes for great UX -->
            <!--Use PNG icons and remember that all URLs on the resources section must use HTTPS -->
              <bt:Image size="16" resid="Contoso.TaskpaneButton.Icon" />
              <bt:Image size="32" resid="Contoso.TaskpaneButton.Icon" />
              <bt:Image size="80" resid="Contoso.TaskpaneButton.Icon" />
            </Icon>

            <!--Control. It can be of type "Button" or "Menu" -->
            <Control xsi:type="Button" id="Contoso.FunctionButton">
            <!--Label for your button. resid must point to a ShortString resource -->
              <Label resid="Contoso.FunctionButton.Label" />
              <Tooltip resid="Contoso.FunctionButton.Tooltip"/>
              <Supertip>
                 <!--ToolTip title. resid must point to a ShortString resource -->
                <Title resid="Contoso.FunctionButton.Label" />
                 <!--ToolTip description. resid must point to a LongString resource -->
                <Description resid="Contoso.FunctionButton.Tooltip" />
              </Supertip>
              <Icon>
                <bt:Image size="16" resid="Contoso.FunctionButton.Icon" />
                <bt:Image size="32" resid="Contoso.FunctionButton.Icon" />
                <bt:Image size="80" resid="Contoso.FunctionButton.Icon" />
              </Icon>
              <!--This is what happens when the command is triggered (E.g. click on the Ribbon). Supported actions are ExecuteFuncion or ShowTaskpane-->
              <!--Look at the FunctionFile.html page for reference on how to implement the function -->
              <Action xsi:type="ShowTaskpane">
              <!--Name of the function to call. This function needs to exist in the global DOM namespace of the function file-->
              <TaskpaneId>ButtonId1</TaskpaneId>
                <SourceLocation resid="Contoso.FunctionButton.Url" />
              </Action>
            </Control>

            <Control xsi:type="Button" id="Contoso.TaskpaneButton">
              <Label resid="Contoso.TaskpaneButton.Label" />
              <Tooltip resid="Contoso.TaskpaneButton.Tooltip" />
              <Supertip>
                <Title resid="Contoso.TaskpaneButton.Label" />
                <Description resid="Contoso.TaskpaneButton.Tooltip" />
              </Supertip>
              <Icon>
                <bt:Image size="16" resid="Contoso.TaskpaneButton.Icon" />
                <bt:Image size="32" resid="Contoso.TaskpaneButton.Icon" />
                <bt:Image size="80" resid="Contoso.TaskpaneButton.Icon" />
              </Icon>
              <Action xsi:type="ShowTaskpane">
                <TaskpaneId>Button2Id1</TaskpaneId>
                 <!--Provide a url resource id for the location that will be displayed on the task pane -->
                <SourceLocation resid="Contoso.Taskpane1.Url" />
              </Action>
            </Control>
        <!-- Menu example -->


          </Group>

          <!-- Label of your tab -->
          <!-- If validating with XSD it needs to be at the end, we might change this before release -->
          <Label resid="Contoso.Tab1.TabLabel" />
        </CustomTab>
      </ExtensionPoint>

            <!--Control. It can be of type "Button" or "Menu" -->
            <Control xsi:type="Button" id="Contoso.FunctionButton">
            <!--Label for your button. resid must point to a ShortString resource -->
              <Label resid="Contoso.FunctionButton.Label" />
              <Tooltip resid="Contoso.FunctionButton.Tooltip"/>
              <Supertip>
                 <!--ToolTip title. resid must point to a ShortString resource -->
                <Title resid="Contoso.FunctionButton.Label" />
                 <!--ToolTip description. resid must point to a LongString resource -->
                <Description resid="Contoso.FunctionButton.Tooltip" />
              </Supertip>
              <Icon>
                <bt:Image size="16" resid="Contoso.FunctionButton.Icon" />
                <bt:Image size="32" resid="Contoso.FunctionButton.Icon" />
                <bt:Image size="80" resid="Contoso.FunctionButton.Icon" />
              </Icon>
              <!--This is what happens when the command is triggered (E.g. click on the Ribbon). Supported actions are ExecuteFuncion or ShowTaskpane-->
              <!--Look at the FunctionFile.html page for reference on how to implement the function -->
              <Action xsi:type="ShowTaskpane">
              <!--Name of the function to call. This function needs to exist in the global DOM namespace of the function file-->
              <TaskpaneId>ButtonId1</TaskpaneId>
                <SourceLocation resid="Contoso.FunctionButton.Url" />
              </Action>
            </Control>

            <Control xsi:type="Button" id="Contoso.TaskpaneButton">
              <Label resid="Contoso.TaskpaneButton.Label" />
              <Tooltip resid="Contoso.TaskpaneButton.Tooltip" />
              <Supertip>
                <Title resid="Contoso.TaskpaneButton.Label" />
                <Description resid="Contoso.TaskpaneButton.Tooltip" />
              </Supertip>
              <Icon>
                <bt:Image size="16" resid="Contoso.TaskpaneButton.Icon" />
                <bt:Image size="32" resid="Contoso.TaskpaneButton.Icon" />
                <bt:Image size="80" resid="Contoso.TaskpaneButton.Icon" />
              </Icon>
              <Action xsi:type="ShowTaskpane">
                <TaskpaneId>Button2Id1</TaskpaneId>
                 <!--Provide a url resource id for the location that will be displayed on the task pane -->
                <SourceLocation resid="Contoso.Taskpane1.Url" />
              </Action>
            </Control>
        <!-- Menu example -->


          </Group>
          <Group id="Contoso.Tab1.Group2">
             <!--Label for your group. resid must point to a ShortString resource -->
            <Label resid="Contoso.Tab1.GroupLabel" />
            <Icon>
            <!-- Sample Todo: Each size needs its own icon resource or it will look distorted when resized -->
            <!--Icons. Required sizes 16,31,80, optional 20, 24, 40, 48, 64. Strongly recommended to provide all sizes for great UX -->
            <!--Use PNG icons and remember that all URLs on the resources section must use HTTPS -->
              <bt:Image size="16" resid="Contoso.TaskpaneButton.Icon" />
              <bt:Image size="32" resid="Contoso.TaskpaneButton.Icon" />
              <bt:Image size="80" resid="Contoso.TaskpaneButton.Icon" />
            </Icon>

            <!--Control. It can be of type "Button" or "Menu" -->
            <Control xsi:type="Button" id="Contoso.FunctionButton">
            <!--Label for your button. resid must point to a ShortString resource -->
              <Label resid="Contoso.FunctionButton.Label" />
              <Tooltip resid="Contoso.FunctionButton.Tooltip"/>
              <Supertip>
                 <!--ToolTip title. resid must point to a ShortString resource -->
                <Title resid="Contoso.FunctionButton.Label" />
                 <!--ToolTip description. resid must point to a LongString resource -->
                <Description resid="Contoso.FunctionButton.Tooltip" />
              </Supertip>
              <Icon>
                <bt:Image size="16" resid="Contoso.FunctionButton.Icon" />
                <bt:Image size="32" resid="Contoso.FunctionButton.Icon" />
                <bt:Image size="80" resid="Contoso.FunctionButton.Icon" />
              </Icon>
              <!--This is what happens when the command is triggered (E.g. click on the Ribbon). Supported actions are ExecuteFuncion or ShowTaskpane-->
              <!--Look at the FunctionFile.html page for reference on how to implement the function -->
              <Action xsi:type="ShowTaskpane">
              <!--Name of the function to call. This function needs to exist in the global DOM namespace of the function file-->
              <TaskpaneId>ButtonId1</TaskpaneId>
                <SourceLocation resid="Contoso.FunctionButton.Url" />
              </Action>
            </Control>

            <Control xsi:type="Button" id="Contoso.TaskpaneButton">
              <Label resid="Contoso.TaskpaneButton.Label" />
              <Tooltip resid="Contoso.TaskpaneButton.Tooltip" />
              <Supertip>
                <Title resid="Contoso.TaskpaneButton.Label" />
                <Description resid="Contoso.TaskpaneButton.Tooltip" />
              </Supertip>
              <Icon>
                <bt:Image size="16" resid="Contoso.TaskpaneButton.Icon" />
                <bt:Image size="32" resid="Contoso.TaskpaneButton.Icon" />
                <bt:Image size="80" resid="Contoso.TaskpaneButton.Icon" />
              </Icon>
              <Action xsi:type="ShowTaskpane">
                <TaskpaneId>Button2Id1</TaskpaneId>
                 <!--Provide a url resource id for the location that will be displayed on the task pane -->
                <SourceLocation resid="Contoso.Taskpane1.Url" />
              </Action>
            </Control>
        <!-- Menu example -->


          </Group>

          <!-- Label of your tab -->
          <!-- If validating with XSD it needs to be at the end, we might change this before release -->
          <Label resid="Contoso.Tab1.TabLabel" />
        </CustomTab>
      </ExtensionPoint>

按钮1
按钮2ID1
按钮1
按钮2ID1
请帮助我们解决此问题。

基于:

            <!--Control. It can be of type "Button" or "Menu" -->
            <Control xsi:type="Button" id="Contoso.FunctionButton">
            <!--Label for your button. resid must point to a ShortString resource -->
              <Label resid="Contoso.FunctionButton.Label" />
              <Tooltip resid="Contoso.FunctionButton.Tooltip"/>
              <Supertip>
                 <!--ToolTip title. resid must point to a ShortString resource -->
                <Title resid="Contoso.FunctionButton.Label" />
                 <!--ToolTip description. resid must point to a LongString resource -->
                <Description resid="Contoso.FunctionButton.Tooltip" />
              </Supertip>
              <Icon>
                <bt:Image size="16" resid="Contoso.FunctionButton.Icon" />
                <bt:Image size="32" resid="Contoso.FunctionButton.Icon" />
                <bt:Image size="80" resid="Contoso.FunctionButton.Icon" />
              </Icon>
              <!--This is what happens when the command is triggered (E.g. click on the Ribbon). Supported actions are ExecuteFuncion or ShowTaskpane-->
              <!--Look at the FunctionFile.html page for reference on how to implement the function -->
              <Action xsi:type="ShowTaskpane">
              <!--Name of the function to call. This function needs to exist in the global DOM namespace of the function file-->
              <TaskpaneId>ButtonId1</TaskpaneId>
                <SourceLocation resid="Contoso.FunctionButton.Url" />
              </Action>
            </Control>

            <Control xsi:type="Button" id="Contoso.TaskpaneButton">
              <Label resid="Contoso.TaskpaneButton.Label" />
              <Tooltip resid="Contoso.TaskpaneButton.Tooltip" />
              <Supertip>
                <Title resid="Contoso.TaskpaneButton.Label" />
                <Description resid="Contoso.TaskpaneButton.Tooltip" />
              </Supertip>
              <Icon>
                <bt:Image size="16" resid="Contoso.TaskpaneButton.Icon" />
                <bt:Image size="32" resid="Contoso.TaskpaneButton.Icon" />
                <bt:Image size="80" resid="Contoso.TaskpaneButton.Icon" />
              </Icon>
              <Action xsi:type="ShowTaskpane">
                <TaskpaneId>Button2Id1</TaskpaneId>
                 <!--Provide a url resource id for the location that will be displayed on the task pane -->
                <SourceLocation resid="Contoso.Taskpane1.Url" />
              </Action>
            </Control>
        <!-- Menu example -->


          </Group>
          <Group id="Contoso.Tab1.Group2">
             <!--Label for your group. resid must point to a ShortString resource -->
            <Label resid="Contoso.Tab1.GroupLabel" />
            <Icon>
            <!-- Sample Todo: Each size needs its own icon resource or it will look distorted when resized -->
            <!--Icons. Required sizes 16,31,80, optional 20, 24, 40, 48, 64. Strongly recommended to provide all sizes for great UX -->
            <!--Use PNG icons and remember that all URLs on the resources section must use HTTPS -->
              <bt:Image size="16" resid="Contoso.TaskpaneButton.Icon" />
              <bt:Image size="32" resid="Contoso.TaskpaneButton.Icon" />
              <bt:Image size="80" resid="Contoso.TaskpaneButton.Icon" />
            </Icon>

            <!--Control. It can be of type "Button" or "Menu" -->
            <Control xsi:type="Button" id="Contoso.FunctionButton">
            <!--Label for your button. resid must point to a ShortString resource -->
              <Label resid="Contoso.FunctionButton.Label" />
              <Tooltip resid="Contoso.FunctionButton.Tooltip"/>
              <Supertip>
                 <!--ToolTip title. resid must point to a ShortString resource -->
                <Title resid="Contoso.FunctionButton.Label" />
                 <!--ToolTip description. resid must point to a LongString resource -->
                <Description resid="Contoso.FunctionButton.Tooltip" />
              </Supertip>
              <Icon>
                <bt:Image size="16" resid="Contoso.FunctionButton.Icon" />
                <bt:Image size="32" resid="Contoso.FunctionButton.Icon" />
                <bt:Image size="80" resid="Contoso.FunctionButton.Icon" />
              </Icon>
              <!--This is what happens when the command is triggered (E.g. click on the Ribbon). Supported actions are ExecuteFuncion or ShowTaskpane-->
              <!--Look at the FunctionFile.html page for reference on how to implement the function -->
              <Action xsi:type="ShowTaskpane">
              <!--Name of the function to call. This function needs to exist in the global DOM namespace of the function file-->
              <TaskpaneId>ButtonId1</TaskpaneId>
                <SourceLocation resid="Contoso.FunctionButton.Url" />
              </Action>
            </Control>

            <Control xsi:type="Button" id="Contoso.TaskpaneButton">
              <Label resid="Contoso.TaskpaneButton.Label" />
              <Tooltip resid="Contoso.TaskpaneButton.Tooltip" />
              <Supertip>
                <Title resid="Contoso.TaskpaneButton.Label" />
                <Description resid="Contoso.TaskpaneButton.Tooltip" />
              </Supertip>
              <Icon>
                <bt:Image size="16" resid="Contoso.TaskpaneButton.Icon" />
                <bt:Image size="32" resid="Contoso.TaskpaneButton.Icon" />
                <bt:Image size="80" resid="Contoso.TaskpaneButton.Icon" />
              </Icon>
              <Action xsi:type="ShowTaskpane">
                <TaskpaneId>Button2Id1</TaskpaneId>
                 <!--Provide a url resource id for the location that will be displayed on the task pane -->
                <SourceLocation resid="Contoso.Taskpane1.Url" />
              </Action>
            </Control>
        <!-- Menu example -->


          </Group>

          <!-- Label of your tab -->
          <!-- If validating with XSD it needs to be at the end, we might change this before release -->
          <Label resid="Contoso.Tab1.TabLabel" />
        </CustomTab>
      </ExtensionPoint>
  • 你先前的问题
  • 以及您提供的代码中的结束标记
我猜有一个问题是,在Office Online的菜单中可以看到相应的项,但在桌面版中却看不到。如果是,您可以尝试以下步骤:

            <!--Control. It can be of type "Button" or "Menu" -->
            <Control xsi:type="Button" id="Contoso.FunctionButton">
            <!--Label for your button. resid must point to a ShortString resource -->
              <Label resid="Contoso.FunctionButton.Label" />
              <Tooltip resid="Contoso.FunctionButton.Tooltip"/>
              <Supertip>
                 <!--ToolTip title. resid must point to a ShortString resource -->
                <Title resid="Contoso.FunctionButton.Label" />
                 <!--ToolTip description. resid must point to a LongString resource -->
                <Description resid="Contoso.FunctionButton.Tooltip" />
              </Supertip>
              <Icon>
                <bt:Image size="16" resid="Contoso.FunctionButton.Icon" />
                <bt:Image size="32" resid="Contoso.FunctionButton.Icon" />
                <bt:Image size="80" resid="Contoso.FunctionButton.Icon" />
              </Icon>
              <!--This is what happens when the command is triggered (E.g. click on the Ribbon). Supported actions are ExecuteFuncion or ShowTaskpane-->
              <!--Look at the FunctionFile.html page for reference on how to implement the function -->
              <Action xsi:type="ShowTaskpane">
              <!--Name of the function to call. This function needs to exist in the global DOM namespace of the function file-->
              <TaskpaneId>ButtonId1</TaskpaneId>
                <SourceLocation resid="Contoso.FunctionButton.Url" />
              </Action>
            </Control>

            <Control xsi:type="Button" id="Contoso.TaskpaneButton">
              <Label resid="Contoso.TaskpaneButton.Label" />
              <Tooltip resid="Contoso.TaskpaneButton.Tooltip" />
              <Supertip>
                <Title resid="Contoso.TaskpaneButton.Label" />
                <Description resid="Contoso.TaskpaneButton.Tooltip" />
              </Supertip>
              <Icon>
                <bt:Image size="16" resid="Contoso.TaskpaneButton.Icon" />
                <bt:Image size="32" resid="Contoso.TaskpaneButton.Icon" />
                <bt:Image size="80" resid="Contoso.TaskpaneButton.Icon" />
              </Icon>
              <Action xsi:type="ShowTaskpane">
                <TaskpaneId>Button2Id1</TaskpaneId>
                 <!--Provide a url resource id for the location that will be displayed on the task pane -->
                <SourceLocation resid="Contoso.Taskpane1.Url" />
              </Action>
            </Control>
        <!-- Menu example -->


          </Group>
          <Group id="Contoso.Tab1.Group2">
             <!--Label for your group. resid must point to a ShortString resource -->
            <Label resid="Contoso.Tab1.GroupLabel" />
            <Icon>
            <!-- Sample Todo: Each size needs its own icon resource or it will look distorted when resized -->
            <!--Icons. Required sizes 16,31,80, optional 20, 24, 40, 48, 64. Strongly recommended to provide all sizes for great UX -->
            <!--Use PNG icons and remember that all URLs on the resources section must use HTTPS -->
              <bt:Image size="16" resid="Contoso.TaskpaneButton.Icon" />
              <bt:Image size="32" resid="Contoso.TaskpaneButton.Icon" />
              <bt:Image size="80" resid="Contoso.TaskpaneButton.Icon" />
            </Icon>

            <!--Control. It can be of type "Button" or "Menu" -->
            <Control xsi:type="Button" id="Contoso.FunctionButton">
            <!--Label for your button. resid must point to a ShortString resource -->
              <Label resid="Contoso.FunctionButton.Label" />
              <Tooltip resid="Contoso.FunctionButton.Tooltip"/>
              <Supertip>
                 <!--ToolTip title. resid must point to a ShortString resource -->
                <Title resid="Contoso.FunctionButton.Label" />
                 <!--ToolTip description. resid must point to a LongString resource -->
                <Description resid="Contoso.FunctionButton.Tooltip" />
              </Supertip>
              <Icon>
                <bt:Image size="16" resid="Contoso.FunctionButton.Icon" />
                <bt:Image size="32" resid="Contoso.FunctionButton.Icon" />
                <bt:Image size="80" resid="Contoso.FunctionButton.Icon" />
              </Icon>
              <!--This is what happens when the command is triggered (E.g. click on the Ribbon). Supported actions are ExecuteFuncion or ShowTaskpane-->
              <!--Look at the FunctionFile.html page for reference on how to implement the function -->
              <Action xsi:type="ShowTaskpane">
              <!--Name of the function to call. This function needs to exist in the global DOM namespace of the function file-->
              <TaskpaneId>ButtonId1</TaskpaneId>
                <SourceLocation resid="Contoso.FunctionButton.Url" />
              </Action>
            </Control>

            <Control xsi:type="Button" id="Contoso.TaskpaneButton">
              <Label resid="Contoso.TaskpaneButton.Label" />
              <Tooltip resid="Contoso.TaskpaneButton.Tooltip" />
              <Supertip>
                <Title resid="Contoso.TaskpaneButton.Label" />
                <Description resid="Contoso.TaskpaneButton.Tooltip" />
              </Supertip>
              <Icon>
                <bt:Image size="16" resid="Contoso.TaskpaneButton.Icon" />
                <bt:Image size="32" resid="Contoso.TaskpaneButton.Icon" />
                <bt:Image size="80" resid="Contoso.TaskpaneButton.Icon" />
              </Icon>
              <Action xsi:type="ShowTaskpane">
                <TaskpaneId>Button2Id1</TaskpaneId>
                 <!--Provide a url resource id for the location that will be displayed on the task pane -->
                <SourceLocation resid="Contoso.Taskpane1.Url" />
              </Action>
            </Control>
        <!-- Menu example -->


          </Group>

          <!-- Label of your tab -->
          <!-- If validating with XSD it needs to be at the end, we might change this before release -->
          <Label resid="Contoso.Tab1.TabLabel" />
        </CustomTab>
      </ExtensionPoint>
  • 删除CustomTab的id属性中的空格:

此外,您还可以检查ScriptLab的清单。这是一个很好的工作清单示例

请提供比“不工作”更详细的信息。出了什么问题,采取了哪些步骤?@Sameer,请提供更多信息以提出建议。请说明您是否在团队中遇到任何问题。当我们将标记与多个标记一起使用时,桌面上的外接程序不会读取外接程序清单文件。
            <!--Control. It can be of type "Button" or "Menu" -->
            <Control xsi:type="Button" id="Contoso.FunctionButton">
            <!--Label for your button. resid must point to a ShortString resource -->
              <Label resid="Contoso.FunctionButton.Label" />
              <Tooltip resid="Contoso.FunctionButton.Tooltip"/>
              <Supertip>
                 <!--ToolTip title. resid must point to a ShortString resource -->
                <Title resid="Contoso.FunctionButton.Label" />
                 <!--ToolTip description. resid must point to a LongString resource -->
                <Description resid="Contoso.FunctionButton.Tooltip" />
              </Supertip>
              <Icon>
                <bt:Image size="16" resid="Contoso.FunctionButton.Icon" />
                <bt:Image size="32" resid="Contoso.FunctionButton.Icon" />
                <bt:Image size="80" resid="Contoso.FunctionButton.Icon" />
              </Icon>
              <!--This is what happens when the command is triggered (E.g. click on the Ribbon). Supported actions are ExecuteFuncion or ShowTaskpane-->
              <!--Look at the FunctionFile.html page for reference on how to implement the function -->
              <Action xsi:type="ShowTaskpane">
              <!--Name of the function to call. This function needs to exist in the global DOM namespace of the function file-->
              <TaskpaneId>ButtonId1</TaskpaneId>
                <SourceLocation resid="Contoso.FunctionButton.Url" />
              </Action>
            </Control>

            <Control xsi:type="Button" id="Contoso.TaskpaneButton">
              <Label resid="Contoso.TaskpaneButton.Label" />
              <Tooltip resid="Contoso.TaskpaneButton.Tooltip" />
              <Supertip>
                <Title resid="Contoso.TaskpaneButton.Label" />
                <Description resid="Contoso.TaskpaneButton.Tooltip" />
              </Supertip>
              <Icon>
                <bt:Image size="16" resid="Contoso.TaskpaneButton.Icon" />
                <bt:Image size="32" resid="Contoso.TaskpaneButton.Icon" />
                <bt:Image size="80" resid="Contoso.TaskpaneButton.Icon" />
              </Icon>
              <Action xsi:type="ShowTaskpane">
                <TaskpaneId>Button2Id1</TaskpaneId>
                 <!--Provide a url resource id for the location that will be displayed on the task pane -->
                <SourceLocation resid="Contoso.Taskpane1.Url" />
              </Action>
            </Control>
        <!-- Menu example -->


          </Group>
          <Group id="Contoso.Tab1.Group2">
             <!--Label for your group. resid must point to a ShortString resource -->
            <Label resid="Contoso.Tab1.GroupLabel" />
            <Icon>
            <!-- Sample Todo: Each size needs its own icon resource or it will look distorted when resized -->
            <!--Icons. Required sizes 16,31,80, optional 20, 24, 40, 48, 64. Strongly recommended to provide all sizes for great UX -->
            <!--Use PNG icons and remember that all URLs on the resources section must use HTTPS -->
              <bt:Image size="16" resid="Contoso.TaskpaneButton.Icon" />
              <bt:Image size="32" resid="Contoso.TaskpaneButton.Icon" />
              <bt:Image size="80" resid="Contoso.TaskpaneButton.Icon" />
            </Icon>

            <!--Control. It can be of type "Button" or "Menu" -->
            <Control xsi:type="Button" id="Contoso.FunctionButton">
            <!--Label for your button. resid must point to a ShortString resource -->
              <Label resid="Contoso.FunctionButton.Label" />
              <Tooltip resid="Contoso.FunctionButton.Tooltip"/>
              <Supertip>
                 <!--ToolTip title. resid must point to a ShortString resource -->
                <Title resid="Contoso.FunctionButton.Label" />
                 <!--ToolTip description. resid must point to a LongString resource -->
                <Description resid="Contoso.FunctionButton.Tooltip" />
              </Supertip>
              <Icon>
                <bt:Image size="16" resid="Contoso.FunctionButton.Icon" />
                <bt:Image size="32" resid="Contoso.FunctionButton.Icon" />
                <bt:Image size="80" resid="Contoso.FunctionButton.Icon" />
              </Icon>
              <!--This is what happens when the command is triggered (E.g. click on the Ribbon). Supported actions are ExecuteFuncion or ShowTaskpane-->
              <!--Look at the FunctionFile.html page for reference on how to implement the function -->
              <Action xsi:type="ShowTaskpane">
              <!--Name of the function to call. This function needs to exist in the global DOM namespace of the function file-->
              <TaskpaneId>ButtonId1</TaskpaneId>
                <SourceLocation resid="Contoso.FunctionButton.Url" />
              </Action>
            </Control>

            <Control xsi:type="Button" id="Contoso.TaskpaneButton">
              <Label resid="Contoso.TaskpaneButton.Label" />
              <Tooltip resid="Contoso.TaskpaneButton.Tooltip" />
              <Supertip>
                <Title resid="Contoso.TaskpaneButton.Label" />
                <Description resid="Contoso.TaskpaneButton.Tooltip" />
              </Supertip>
              <Icon>
                <bt:Image size="16" resid="Contoso.TaskpaneButton.Icon" />
                <bt:Image size="32" resid="Contoso.TaskpaneButton.Icon" />
                <bt:Image size="80" resid="Contoso.TaskpaneButton.Icon" />
              </Icon>
              <Action xsi:type="ShowTaskpane">
                <TaskpaneId>Button2Id1</TaskpaneId>
                 <!--Provide a url resource id for the location that will be displayed on the task pane -->
                <SourceLocation resid="Contoso.Taskpane1.Url" />
              </Action>
            </Control>
        <!-- Menu example -->


          </Group>

          <!-- Label of your tab -->
          <!-- If validating with XSD it needs to be at the end, we might change this before release -->
          <Label resid="Contoso.Tab1.TabLabel" />
        </CustomTab>
      </ExtensionPoint>