【问题标题】:OfficeJS Outlook Add-in Does Not InstallOfficeJS Outlook 加载项未安装
【发布时间】:2017-09-19 09:06:00
【问题描述】:

更新 #1:

TL;DR:我想定位:

  • Outlook 2016 或更高版本
  • Web 上的 Outlook
  • Mac 版 Outlook 2016
  • Outlook for iOS
  • Android 版 Outlook

我需要 Mailbox 1.5 才能支持calling the Outlook REST APIspinnable taskpanes

由于仅适用于 Windows 的 Outlook 2016 支持可固定任务窗格,并且因为 Mailbox 1.5 is currently only supported in Outlook on the Web,我需要在清单的 <VersionOverrides> 部分中设置邮箱 1.5。

根据验证报告:

Your add-in manifest includes Tablet Settings and Phone Settings, however 
Mailbox 1.4 is used in the core of your manifest. This mailbox is not
supported in the Outlook Web App.

这听起来与Office Add-in host and platform availability 所说的相冲突。所以,我在清单的基础级别设置了 Mailbox 1.3。


这是我的清单:

<?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:mailappor="http://schemas.microsoft.com/office/mailappversionoverrides" xsi:type="MailApp">
  <Id>3042ed3a-6ca5-4b37-b5e3-a591f5605332</Id>
  <Version>1.0.1.0</Version>
  <ProviderName>Leap Legal Software</ProviderName>
  <DefaultLocale>en-US</DefaultLocale>
  <DisplayName DefaultValue="LEAP Mail Manager" />
  <Description DefaultValue="Save your mail to LEAP."/>
  <IconUrl DefaultValue="https://outlookapp.leap365.com/images/icon-64.png" />
  <HighResolutionIconUrl DefaultValue="https://outlookapp.leap365.com/images/icon-128.png" />
  <SupportUrl DefaultValue="https://leap.force.com/us/s/" />
  <AppDomains>
    <!--LEAP Add-in Domains -->
    <AppDomain>https://outlookapp-dev.leap365.com/</AppDomain>
    <AppDomain>https://outlookapp-test.leap365.com/</AppDomain>
    <AppDomain>https://outlookapp.leap365.com/</AppDomain>
    <!--TitleX Add-in Domains -->
    <AppDomain>https://outlookapp.dev.titlex.com.au/</AppDomain>
    <AppDomain>https://outlookapp.test.titlex.com.au/</AppDomain>
    <AppDomain>https://outlookapp.titlex.com.au/</AppDomain>
    <!-- LEAP Auth -->
    <AppDomain>https://auth-dev.leap.services/</AppDomain>
    <AppDomain>https://auth-test.leap.services/</AppDomain>
    <AppDomain>https://auth.leap.services/</AppDomain>
    <!-- TitleX Auth -->
    <AppDomain>https://login.dev.titlex.com.au/</AppDomain>
    <AppDomain>https://login.test.titlex.com.au/</AppDomain>
    <AppDomain>https://login.titlex.com.au/</AppDomain>
    <AppDomain>https://login.dev.titlex.co.uk/</AppDomain>
    <AppDomain>https://login.test.titlex.co.uk/</AppDomain>
    <AppDomain>https://login.titlex.co.uk/</AppDomain>
    <AppDomain>https://login.dev.titlex.com/</AppDomain>
    <AppDomain>https://login.test.titlex.com/</AppDomain>
    <AppDomain>https://login.titlex.com/</AppDomain>
  </AppDomains>
  <Hosts>
    <Host Name="Mailbox" />
  </Hosts>
  <Requirements>
    <Sets DefaultMinVersion="1.3">
      <Set Name="Mailbox" MinVersion="1.3" />
    </Sets>
  </Requirements>
  <FormSettings>
    <Form xsi:type="ItemRead">
      <DesktopSettings>
        <SourceLocation DefaultValue="https://outlookapp.leap365.com/index.html"/>
        <RequestedHeight>280</RequestedHeight>
      </DesktopSettings>
      <TabletSettings>
        <SourceLocation DefaultValue="https://outlookapp.leap365.com/index.html" />
        <RequestedHeight>280</RequestedHeight>
      </TabletSettings>
      <PhoneSettings>
        <SourceLocation DefaultValue="https://outlookapp.leap365.com/index.html" />
      </PhoneSettings>
    </Form>
  </FormSettings>
  <Permissions>ReadWriteMailbox</Permissions>
  <Rule xsi:type="RuleCollection" Mode="Or">
    <Rule xsi:type="ItemIs" ItemType="Message" FormType="Read" /></Rule>
  <DisableEntityHighlighting>false</DisableEntityHighlighting>
  <VersionOverrides 
    xmlns="http://schemas.microsoft.com/office/mailappversionoverrides" xsi:type="VersionOverridesV1_0">
    <Requirements>
      <bt:Sets DefaultMinVersion="1.5">
        <bt:Set Name="Mailbox" MinVersion="1.5" />
      </bt:Sets>
    </Requirements>
    <Hosts>
      <Host xsi:type="MailHost">
        <DesktopFormFactor>
          <FunctionFile resid="Leap.Functions.Url" />
          <!-- Message Read -->
          <ExtensionPoint xsi:type="MessageReadCommandSurface">
            <CustomTab id="TabLeap">
              <Group id="Leap.Group1">
                <Label resid="Leap.Group1Label" />
                <Control xsi:type="Button" id="Leap.DefaultCommand">
                  <Label resid="Leap.DefaultCommand.Label" />
                  <Supertip>
                    <Title resid="Leap.DefaultCommand.Label" />
                    <Description resid="Leap.DefaultCommand.Tooltip" />
                  </Supertip>
                  <Icon>
                    <bt:Image size="16" resid="Leap.Icon.16" />
                    <bt:Image size="32" resid="Leap.Icon.32" />
                    <bt:Image size="80" resid="Leap.Icon.80" />
                    <bt:Image size="20" resid="Leap.Icon.20" />
                    <bt:Image size="24" resid="Leap.Icon.24" />
                    <bt:Image size="40" resid="Leap.Icon.40" />
                    <bt:Image size="48" resid="Leap.Icon.48" />
                    <bt:Image size="64" resid="Leap.Icon.64" />
                  </Icon>
                  <Action xsi:type="ShowTaskpane">
                    <SourceLocation resid="Leap.Taskpane.Url" />
                  </Action>
                </Control>
              </Group>
              <Label resid="Leap.TabLabel"/>
            </CustomTab>
          </ExtensionPoint>
          <!-- Go to http://aka.ms/ExtensionPointsCommands to learn how to add more Extension Points: MessageRead, AppointmentOrganizer, AppointmentAttendee -->
        </DesktopFormFactor>
      </Host>
    </Hosts>
    <Resources>
      <bt:Images>
        <bt:Image id="Leap.Icon.16" DefaultValue="https://outlookapp.leap365.com/images/icon-16.png"/>
        <bt:Image id="Leap.Icon.32" DefaultValue="https://outlookapp.leap365.com/images/icon-32.png"/>
        <bt:Image id="Leap.Icon.80" DefaultValue="https://outlookapp.leap365.com/images/icon-80.png"/>
        <bt:Image id="Leap.Icon.20" DefaultValue="https://outlookapp.leap365.com/images/icon-20.png" />
        <bt:Image id="Leap.Icon.24" DefaultValue="https://outlookapp.leap365.com/images/icon-24.png" />
        <bt:Image id="Leap.Icon.25" DefaultValue="https://outlookapp.leap365.com/images/icon-25.png" />
        <bt:Image id="Leap.Icon.40" DefaultValue="https://outlookapp.leap365.com/images/icon-40.png" />
        <bt:Image id="Leap.Icon.48" DefaultValue="https://outlookapp.leap365.com/images/icon-48.png" />
        <bt:Image id="Leap.Icon.64" DefaultValue="https://outlookapp.leap365.com/images/icon-64.png" />
      </bt:Images>
      <bt:Urls>
        <bt:Url id="Leap.Taskpane.Url" DefaultValue="https://outlookapp.leap365.com/index.html" />
        <bt:Url id="Leap.Functions.Url" DefaultValue="https://outlookapp.leap365.com/functions.html" />
      </bt:Urls>
      <bt:ShortStrings>
        <bt:String id="Leap.TabLabel" DefaultValue="LEAP Mail Manager" />
        <bt:String id="Leap.Group1Label" DefaultValue="LEAP" />
        <bt:String id="Leap.DefaultCommand.Label" DefaultValue="LEAP Mail Manager" />
        <bt:String id="Leap.DefaultCommand.Title" DefaultValue="LEAP Mail Manager" />
      </bt:ShortStrings>
      <bt:LongStrings>
        <bt:String id="Leap.DefaultCommand.Tooltip" DefaultValue="Click to show the add-in." />
        <bt:String id="Leap.Description" DefaultValue="Save your mail to LEAP." />
      </bt:LongStrings>
    </Resources>
    <!-- NOTE: TO SUPPORT A PINNABLE TASKPANE AND MOBILEFORMFACTOR -->
    <VersionOverrides 
      xmlns="http://schemas.microsoft.com/office/mailappversionoverrides/1.1" xsi:type="VersionOverridesV1_1">
      <Requirements>
        <bt:Sets DefaultMinVersion="1.5">
          <bt:Set Name="Mailbox" MinVersion="1.5" />
        </bt:Sets>
      </Requirements>
      <Hosts>
        <Host xsi:type="MailHost">
          <DesktopFormFactor>
            <FunctionFile resid="Leap.Functions.Url" />
            <!-- Message Read -->
            <ExtensionPoint xsi:type="MessageReadCommandSurface">
              <CustomTab id="TabLeap">
                <Group id="Leap.Group1">
                  <Label resid="Leap.Group1Label" />
                  <Control xsi:type="Button" id="Leap.DefaultCommand">
                    <Label resid="Leap.DefaultCommand.Label" />
                    <Supertip>
                      <Title resid="Leap.DefaultCommand.Label" />
                      <Description resid="Leap.DefaultCommand.Tooltip" />
                    </Supertip>
                    <Icon>
                      <bt:Image size="16" resid="Leap.Icon.16" />
                      <bt:Image size="32" resid="Leap.Icon.32" />
                      <bt:Image size="80" resid="Leap.Icon.80" />
                      <bt:Image size="20" resid="Leap.Icon.20" />
                      <bt:Image size="24" resid="Leap.Icon.24" />
                      <bt:Image size="40" resid="Leap.Icon.40" />
                      <bt:Image size="48" resid="Leap.Icon.48" />
                      <bt:Image size="64" resid="Leap.Icon.64" />
                    </Icon>
                    <Action xsi:type="ShowTaskpane">
                      <SourceLocation resid="Leap.Taskpane.Url" />
                      <SupportsPinning>true</SupportsPinning>
                    </Action>
                  </Control>
                  <!-- Go to http://aka.ms/ButtonCommands to learn how to add more Controls: ExecuteFunction and Menu -->
                </Group>
                <Label resid="Leap.TabLabel"/>
              </CustomTab>
            </ExtensionPoint>
            <!-- Go to http://aka.ms/ExtensionPointsCommands to learn how to add more Extension Points: MessageRead, AppointmentOrganizer, AppointmentAttendee -->
          </DesktopFormFactor>
          <!-- See https://docs.microsoft.com/en-us/outlook/add-ins/add-mobile-support -->
          <MobileFormFactor>
            <FunctionFile resid="Leap.Functions.Url" />
            <ExtensionPoint xsi:type="MobileMessageReadCommandSurface">
              <Group id="Leap.Group1">
                <Label resid="Leap.Group1Label" />
                <Control xsi:type="MobileButton" id="Leap.DefaultCommand">
                  <Label resid="Leap.DefaultCommand.Label" />
                  <Icon xsi:type="bt:MobileIconList">
                    <bt:Image size="25" scale="1" resid="Leap.Icon.25" />
                    <bt:Image size="25" scale="2" resid="Leap.Icon.25" />
                    <bt:Image size="25" scale="3" resid="Leap.Icon.25" />
                    <bt:Image size="32" scale="1" resid="Leap.Icon.32" />
                    <bt:Image size="32" scale="2" resid="Leap.Icon.32" />
                    <bt:Image size="32" scale="3" resid="Leap.Icon.32" />
                    <bt:Image size="48" scale="1" resid="Leap.Icon.48" />
                    <bt:Image size="48" scale="2" resid="Leap.Icon.48" />
                    <bt:Image size="48" scale="3" resid="Leap.Icon.48" />
                  </Icon>
                  <Action xsi:type="ShowTaskpane">
                    <SourceLocation resid="Leap.Taskpane.Url" />
                  </Action>
                </Control>
              </Group>
            </ExtensionPoint>
          </MobileFormFactor>
        </Host>
      </Hosts>
      <Resources>
        <bt:Images>
          <bt:Image id="Leap.Icon.16" DefaultValue="https://outlookapp.leap365.com/images/icon-16.png"/>
          <bt:Image id="Leap.Icon.32" DefaultValue="https://outlookapp.leap365.com/images/icon-32.png"/>
          <bt:Image id="Leap.Icon.80" DefaultValue="https://outlookapp.leap365.com/images/icon-80.png"/>
          <bt:Image id="Leap.Icon.20" DefaultValue="https://outlookapp.leap365.com/images/icon-20.png" />
          <bt:Image id="Leap.Icon.24" DefaultValue="https://outlookapp.leap365.com/images/icon-24.png" />
          <bt:Image id="Leap.Icon.25" DefaultValue="https://outlookapp.leap365.com/images/icon-25.png" />
          <bt:Image id="Leap.Icon.40" DefaultValue="https://outlookapp.leap365.com/images/icon-40.png" />
          <bt:Image id="Leap.Icon.48" DefaultValue="https://outlookapp.leap365.com/images/icon-48.png" />
          <bt:Image id="Leap.Icon.64" DefaultValue="https://outlookapp.leap365.com/images/icon-64.png" />
        </bt:Images>
        <bt:Urls>
          <bt:Url id="Leap.Taskpane.Url" DefaultValue="https://outlookapp.leap365.com/index.html" />
          <bt:Url id="Leap.Functions.Url" DefaultValue="https://outlookapp.leap365.com/functions.html" />
        </bt:Urls>
        <bt:ShortStrings>
          <bt:String id="Leap.TabLabel" DefaultValue="LEAP Mail Manager" />
          <bt:String id="Leap.Group1Label" DefaultValue="LEAP" />
          <bt:String id="Leap.DefaultCommand.Label" DefaultValue="LEAP Mail Manager" />
          <bt:String id="Leap.DefaultCommand.Title" DefaultValue="LEAP Mail Manager" />
        </bt:ShortStrings>
        <bt:LongStrings>
          <bt:String id="Leap.DefaultCommand.Tooltip" DefaultValue="Click to show the add-in." />
          <bt:String id="Leap.Description" DefaultValue="Save your mail to LEAP." />
        </bt:LongStrings>
      </Resources>
    </VersionOverrides>
  </VersionOverrides>
</OfficeApp>

这是上述加载项清单的validate-office-addin 结果:

Calling validation service. This might take a moment...
-------------------------------------
Validation: Passed
Based on the requirements specified in your manifest, your add-in can run on the following platforms; your add-in will be tested on these platforms when you submit it to the Office Store:
  - Outlook 2013 Service Pack 1 or later
  - Outlook 2016 or later
  - Outlook on the Web
  - Outlook 2016 for Mac
  - Outlook for iOS
  - Outlook for Android
Important: This analysis is based on the requirements specified in your manifest and does not account for any runtime JavaScript calls within your add-in. For information about which API sets and features are supported on each platform, see Office Add-in host and platfo
rm availability. (https://dev.office.com/add-in-availability).

*This does not include mobile apps. You can opt-in to support mobile apps when you submit your add-in.
-------------------------------------

但是,微软的验证报告说:

Your add-in is not working in Outlook 2016, Outlook 2013, Outlook for Mac, 
the Outlook app on iOS or in the Outlook app on Android. Your add-in is not 
available to be inserted in the above platforms. If you do not support 2013 
SP1 because you are using an API only available in 2016/Online, you must put 
these apis in the requirements tag in your manifest. If you are not using an 
API only available in 2016/Online, then you must support 2013 SP1.

我有side-loaded the add-in from OWA

我可以在以下位置看到加载项:

  • Outlook 2016 或更高版本 (Windows)
  • Web 上的 Outlook (OWA)

我尚未测试加载项是否出现在 Outlook 2016 for Mac 上。

对于我的生活,我似乎无法让加载项出现:

  • Outlook 2013 Service Pack 1 或更高版本
  • Outlook for iOS
  • Android 版 Outlook

我不明白为什么。我在清单中遗漏了什么吗?我是否可能错误地配置了清单?请帮忙。

【问题讨论】:

  • 您应该能够在核心清单中使用 1.4 作为需求集。 Office-Addin-Validator 可能已过期,您可以为此在 github 上提交问题。

标签: outlook office-js office-addins outlook-web-addins office-store


【解决方案1】:

通过在 VersionOverridesV1_1 中定义 MobileFormFactor 元素来添加对 Outlook 移动版的支持。见here for more information on MobileFormFactor

Outlook 2013 不支持邮箱 1.5(有关可用性信息,请参阅 here)要让您的加载项出现在 Outlook 2013 中,您需要使用邮箱 1.4 或更低版本

【讨论】:

  • 请查看我的清单:我在VersionOverrides v1.1 中指定&lt;MobileFormFactor&gt;。如果 Outlook 2013 不支持 Mailbox 1.5,为什么验证程序将其列为受支持的平台?我将编辑我的问题以提供更多背景信息。
  • 我添加了 Outlook-addin 标记,让 Outlook 加载项团队参与进来提供帮助。我相信这是因为清单核心中的要求有邮箱 1.3;但 Outlook 团队最适合提供进一步的帮助。
【解决方案2】:

在插件和商店团队的回复中添加一些细节。

Outlook 2013 的问题源于 Outlook 遵循的两个相互冲突的规则:

  • 您已在核心清单中声明了1.3 的最低邮箱版本。
  • 您还声明了一个VersionOverridesV1_0 部分,最低版本为1.5

验证工具声明支持 Outlook 2013 Service Pack 1 或更高版本,因为(正如应用商店团队所述),此版本的 Outlook 支持1.3

Outlook 2013 Service Pack 1 或更高版本还通过VersionOverridesV1_0 支持Add-in Commands。一旦 Outlook 看到您声明了加载项命令,它将转向使用加载项命令。但是,由于这些被定义为需要1.5,因此 Outlook 2013 无法呈现它们。

为了让您的加载项命令显示在 Outlook 2013 中,您需要确保在 VersionOverridesV1_0 中所需的最低版本为 1.4 或更低(请注意,VersionOverridesV1_1 应保持在 @ 987654331@).

【讨论】:

  • 将此标记为答案,因为它间接帮助我解决了我的问题。谢谢!
猜你喜欢
  • 2014-11-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多