Office加载项要求会导致加载失败

时间:2017-11-04 17:26:10

标签: xml office-js

我无法在不删除加载项命令或运行它的情况下为我的Word插件设置Manifest中的要求。

My Manifest看起来像这样:

<?xml version="1.0" encoding="UTF-8"?>
<OfficeApp
          xmlns="http://schemas.microsoft.com/office/appforoffice/1.1"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xmlns:bt="http://schemas.microsoft.com/office/officeappbasictypes/1.0"
          xmlns:ov="http://schemas.microsoft.com/office/taskpaneappversionoverrides"
          xsi:type="TaskPaneApp">
<Id>id</Id>
  <Version>1.0.0.4</Version>
  <ProviderName>Bernhard Webstudio</ProviderName>
  <DefaultLocale>en-US</DefaultLocale>
  <DisplayName DefaultValue="foo" />
  <Description DefaultValue="bar"/>
  <IconUrl DefaultValue="~remoteAppUrl/Images/logo.png" />

  <SupportUrl DefaultValue="https://twitter.com/BernhardWStudio" />
  <AppDomains>
    <AppDomain>AppDomain1</AppDomain>
    <AppDomain>AppDomain2</AppDomain>
  </AppDomains>

<Hosts>
  <Host Name="Document" />
</Hosts>

<!-- when commenting the following lines out, it works -->
  <Requirements>
    <Sets DefaultMinVersion="1.3">
      <Set Name="TableBindings" />
      <Set Name="Selection" />
      <Set Name="AddinCommands" MinVersion="1.1" />
    </Sets>
  </Requirements>

  <DefaultSettings>
    <SourceLocation DefaultValue="~remoteAppUrl/Home.html" />
  </DefaultSettings>

  <Permissions>ReadWriteDocument</Permissions>

  <VersionOverrides xmlns="http://schemas.microsoft.com/office/taskpaneappversionoverrides" xsi:type="VersionOverridesV1_0">
    <!-- when I set the Requirements here (with bt: prefix for Sets & Set), I only see the taskpane but no ribbon buttons -->
    <Hosts>
       <Host xsi:type="Document">
        <DesktopFormFactor>
          <GetStarted>
            <Title resid="BeWeStd.GetStarted.Title"/>
            <Description resid="BeWeStd.GetStarted.Description"/>
            <LearnMoreUrl resid="BeWeStd.GetStarted.LearnMoreUrl"/>
          </GetStarted>
          <FunctionFile resid="BeWeStd.DesktopFunctionFile.Url" />

          <ExtensionPoint xsi:type="PrimaryCommandSurface">
            <OfficeTab id="TabHome">
               <Group id="BeWeStd.Group1">
                <Label resid="BeWeStd.Group1Label" />
                <Icon>
                  <bt:Image size="16" resid="BeWeStd.tpicon_16x16" />
                  <bt:Image size="32" resid="BeWeStd.tpicon_32x32" />
                  <bt:Image size="32" resid="BeWeStd.tpicon_64x64" />
                  <bt:Image size="80" resid="BeWeStd.tpicon_80x80" />
                </Icon>
                <Control xsi:type="Button" id="BeWeStd.TaskpaneBtn.Info">
                  <Label resid="BeWeStd.TaskpaneBtn.Info.Label" />
                  <Supertip>
                    <Title resid="BeWeStd.TaskpaneBtn.Info.Label" />
                    <Description resid="BeWeStd.TaskpaneBtn.Info.Tooltip" />
                  </Supertip>
                  <Icon>
                    <bt:Image size="16" resid="BeWeStd.infoicon_16x16" />
                    <bt:Image size="32" resid="BeWeStd.infoicon_32x32" />
                    <bt:Image size="80" resid="BeWeStd.infoicon_80x80" />
                  </Icon>

                  <Action xsi:type="ShowTaskpane">
                    <TaskpaneId>ButtonId1</TaskpaneId>
                    <SourceLocation resid="BeWeStd.Taskpane.Url" />
                  </Action>
                </Control>
                <!-- more Control elements removed to reduce Code -->
                </Group>
            </OfficeTab>
          </ExtensionPoint>
        </DesktopFormFactor>
      </Host>
    </Hosts>

    <Resources>
      <!-- resources not listed to reduce amount of Code -->
    </Resources>
  </VersionOverrides>
</OfficeApp>

我尝试在不同的地方设置它们(请参阅代码中的注释)。不幸的是,它没有帮助。加载项崩溃(没有log)或不显示功能区项目。我需要设置需求,因为我的功能依赖于API 1.3,并且在老版本中不起作用,因此如果没有它,外接程序就不会被批准。

<Requirements>的上述展示位置受the docs的启发。如果我进一步向上或向下放置一个元素,则xml验证失败。但现在它的位置,验证告诉我它应该工作。

在不破坏加载项的情况下,我必须在哪里放置<Requirements>

1 个答案:

答案 0 :(得分:1)

此处的问题是DefaultMinVersion="1.3"设置元素的默认版本。反过来,这意味着您需要TableBindingsSelection的最低版本1.3。这两个需求集的最新版本是1.1,因此Word无法加载加载项,因为它无法满足您的最低版本要求。

此处您需要指定WordApi,其最低版本为1.3。请尝试使用此代码:

<Requirements>
    <Sets DefaultMinVersion="1.1">
        <Set Name="TableBindings" />
        <Set Name="Selection" />
        <Set Name="AddinCommands" />
        <Set Name="WordApi" MinVersion="1.3" />
    </Sets>
</Requirements>