Outlook Windows版Add-in约会界面功能区按钮不显示问题
Outlook 插件约会界面自定义功能区按钮不显示问题
问题描述
开发Windows平台Outlook Add-in时,配置manifest文件后出现异常:约会操作界面的功能区未显示自定义插件按钮,仅展示默认的“Office Add-ins”按钮,点击该按钮会弹出插件选择窗口,用户需要在窗口内选中才能启动开发的插件。
补充说明:该异常在Outlook 2021版本中不会复现
运行环境:本地部署Microsoft Outlook 2016(版本号16.0.5182.1000)、Exchange 2016(内部版本号15.1.2375.7)
待排查的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:mailappor="http://schemas.microsoft.com/office/mailappversionoverrides/1.0" xsi:type="MailApp"> <Id>04049d6c-3286-46c1-be8a-965a2a8ee58f</Id> <Version>1.0.0.0</Version> <ProviderName>X</ProviderName> <DefaultLocale>en-US</DefaultLocale> <DisplayName DefaultValue="Room Finder"/> <Description DefaultValue="Find a free room for your meeting."/> <IconUrl DefaultValue="https://someurl.com/assets/logo-64.png"/> <HighResolutionIconUrl DefaultValue="https://someurl.com/assets/logo-128.png"/> <SupportUrl DefaultValue="https://someurl.com"/> <AppDomains> <AppDomain>https://someurl.com</AppDomain> </AppDomains> <Hosts> <Host Name="Mailbox"/> </Hosts> <Requirements> <Sets> <Set Name="Mailbox" MinVersion="1.1"/> </Sets> </Requirements> <FormSettings> <Form xsi:type="ItemEdit"> <DesktopSettings> <SourceLocation DefaultValue="https://someurl.com/webaddin/taskpane.html"/> </DesktopSettings> </Form> </FormSettings> <Permissions>ReadWriteMailbox</Permissions> <Rule xsi:type="RuleCollection" Mode="Or"> <Rule xsi:type="ItemIs" ItemType="Appointment" FormType="Edit"/> <Rule xsi:type="ItemIs" ItemType="Appointment" FormType="Read" /> <Rule xsi:type="ItemHasKnownEntity" EntityType="MeetingSuggestion" /> </Rule> <DisableEntityHighlighting>false</DisableEntityHighlighting> <VersionOverrides xmlns="http://schemas.microsoft.com/office/mailappversionoverrides" xsi:type="VersionOverridesV1_0"> <VersionOverrides xmlns="http://schemas.microsoft.com/office/mailappversionoverrides/1.1" xsi:type="VersionOverridesV1_1"> <Description resid="residAppDesc" /> <Requirements> <bt:Sets DefaultMinVersion="1.5"> <bt:Set Name="Mailbox"/> </bt:Sets> </Requirements> <Hosts> <Host xsi:type="MailHost"> <DesktopFormFactor> <ExtensionPoint xsi:type="AppointmentOrganizerCommandSurface"> <OfficeTab id="TabDefault"> <Group id="appOrgGroup"> <Label resid="GroupLabel"/> <Control xsi:type="Button" id="appOrgTaskPaneButton"> <Label resid="appOrgTaskPaneButton.Label"/> <Supertip> <Title resid="appOrgTaskPaneButton.Label"/> <Description resid="appOrgTaskPaneButton.Tooltip"/> </Supertip> <Icon> <bt:Image size="16" resid="Icon.16x16"/> <bt:Image size="32" resid="Icon.32x32"/> <bt:Image size="80" resid="Icon.80x80"/> <bt:Image size="128" resid="Icon.128x128"/> </Icon> <Action xsi:type="ShowTaskpane"> <SourceLocation resid="appOrgTaskPaneButton.Url"/> </Action> </Control> </Group> </OfficeTab> </ExtensionPoint> </DesktopFormFactor> </Host> </Hosts> <Resources> <bt:Images> <bt:Image id="Icon.16x16" DefaultValue="https://someurl.com/webaddin/assets/logo-16.png"/> <bt:Image id="Icon.32x32" DefaultValue="https://someurl.com/webaddin/assets/logo-32.png"/> <bt:Image id="Icon.64x64" DefaultValue="https://someurl.com/webaddin/assets/logo-64.png"/> <bt:Image id="Icon.80x80" DefaultValue="https://someurl.com/webaddin/assets/logo-80.png"/> <bt:Image id="Icon.128x128" DefaultValue="https://someurl.com/webaddin/assets/logo-128.png"/> </bt:Images> <bt:Urls> <!-- Separate page for appointments--> <bt:Url id="appOrgTaskPaneButton.Url" DefaultValue="https://someurl.com/webaddin/taskpane.html"/> </bt:Urls> <bt:ShortStrings> <bt:String id="GroupLabel" DefaultValue="My company"/> <bt:String id="appOrgTaskPaneButton.Label" DefaultValue="Find Meeting Room"/> </bt:ShortStrings> <bt:LongStrings> <bt:String id="appOrgTaskPaneButton.Tooltip" DefaultValue="Find an available room for this meeting based on your building and floor selection"/> <bt:String id="residAppDesc" DefaultValue="My company"></bt:String> </bt:LongStrings> </Resources> </VersionOverrides> </VersionOverrides> </OfficeApp>
编写manifest.xml时参考了微软官方仓库提供的示例代码,需要确认当前manifest配置是否存在错误。
配置错误点与修复方案
当前manifest存在两处直接导致异常的配置问题:
- Mailbox要求集版本配置过高
你在VersionOverridesV1_1节点下设置Mailbox要求集DefaultMinVersion="1.5",但Exchange 2016最高仅支持Mailbox 1.4版本要求集。Outlook 2016连接Exchange 2016时无法满足1.5的版本要求,会直接忽略VersionOverridesV1_1中定义的所有自定义功能区配置,回退到旧版插件加载逻辑,仅显示通用的「Office Add-ins」入口。
将该值修改为DefaultMinVersion="1.3"即可兼容当前环境,你使用的AppointmentOrganizerCommandSurface扩展点在1.3版本已正式支持,无需依赖1.5版本。 - 缺少V1.0版本VersionOverrides的兼容配置
当前你仅在嵌套的V1.1 VersionOverrides节点中编写了功能区配置,外层V1.0版本的VersionOverrides节点为空。部分旧版Outlook客户端不会自动读取嵌套的V1.1配置,空节点会导致客户端无法识别自定义按钮定义。
将功能区、资源配置同步补充到外层V1.0的VersionOverrides节点下即可解决该兼容问题。
配置修改完成后,需要在Outlook中重新加载插件:打开「文件-选项-加载项」,移除当前已加载的插件,重新添加manifest文件后重启Outlook,即可在约会界面看到自定义按钮。
Outlook 2021搭配高版本Exchange时原生支持1.5及以上版本要求集,因此不会复现该异常,和你观察到的现象一致。
内容的提问来源于stack exchange,提问作者ZakiJuro
相关产品推荐
相关产品推荐

