I am developing an add-in for Outlook. My manifest installs without problems in Outlook for the web, but when I try to install the manifest in Outlook for Mac (v16.43), it appears to succeed, but after closing the add-ins window and re-opening it, the add-in has disappeared.
I have generated some logs from Outlook, and see this error:
04/12/2020 14:29:13 Unexpected Manifest Issue encountered while parsing manifest,
add-in ID : <id>, Location : Error at element "Action" :
Add-in manifest parsing encountered an unexpected child node, Line=90, CharPosition=16
The relevant parts of the manifest are below. The Action element referred to in the error is the one in the MobileFormFactor section. If I remove the MobileFormFactor section, then the manifest installs successfully.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<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">
...
<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="residDescription"></Description>
<Requirements>
<bt:Sets>
<bt:Set Name="Mailbox" MinVersion="1.3"/>
</bt:Sets>
</Requirements>
<Hosts>
<Host xsi:type="MailHost">
<DesktopFormFactor>
<ExtensionPoint xsi:type="AppointmentOrganizerCommandSurface">
<OfficeTab id="TabDefault">
<Group id="apptComposeGroup">
<Label resid="residDescription"/>
<Control xsi:type="Button" id="insertMeetingButton">
<Label resid="addLabel"/>
<Supertip>
<Title resid="addLabel"/>
<Description resid="residTooltip"/>
</Supertip>
<Icon>
<bt:Image size="16" resid="icon-16"/>
<bt:Image size="32" resid="icon-32"/>
<bt:Image size="48" resid="icon-48"/>
<bt:Image size="64" resid="icon-64"/>
<bt:Image size="80" resid="icon-80"/>
</Icon>
<Action xsi:type="ShowTaskpane">
<SourceLocation resid="residTaskpaneUrl"/>
</Action>
</Control>
</Group>
</OfficeTab>
</ExtensionPoint>
</DesktopFormFactor>
<MobileFormFactor>
<ExtensionPoint xsi:type="MobileOnlineMeetingCommandSurface">
<Control xsi:type="MobileButton" id="insertMeetingButton">
<Label resid="prodName"/>
<Icon>
<bt:Image size="25" scale="1" resid="icon-grey16"/>
<bt:Image size="25" scale="2" resid="icon-grey16"/>
<bt:Image size="25" scale="3" resid="icon-grey16"/>
<bt:Image size="32" scale="1" resid="icon-grey32"/>
<bt:Image size="32" scale="2" resid="icon-grey32"/>
<bt:Image size="32" scale="3" resid="icon-grey32"/>
<bt:Image size="48" scale="1" resid="icon-grey48"/>
<bt:Image size="48" scale="2" resid="icon-grey48"/>
<bt:Image size="48" scale="3" resid="icon-grey48"/>
</Icon>
<Action xsi:type="ShowTaskpane">
<SourceLocation resid="residTaskpaneUrl"/>
</Action>
</Control>
</ExtensionPoint>
</MobileFormFactor>
</Host>
</Hosts>
...
</VersionOverrides>
</VersionOverrides>
</OfficeApp>
Related
I am creating an SSO Add-in and I am just calling this to give it a try (getAccessToken):
async function getUserData() {
try {
let usertokenEncoded = await OfficeRuntime.auth.getAccessToken();
let usertoken = jwt_decode(usertokenEncoded);
console.log(usertoken);
} catch (exception) {
if (exception.code === 13003) {
} else {
console.log(exception);
}
}
}
I am receiving an error saying :
The identity API is not supported for this add-in. 13000
I believe it is something to do with my manifest file and I don't see any trouble with it.
I have put it at the end of the as per documentation. Here is the code I have used.
<WebApplicationInfo>
<Id>97d836ee-5c77-4707-9d54-be09716fdxxx</Id>
<Resource>api://localhost:3000/97d836ee-5c77-4707-9d54-be09716fdxxx</Resource>
<Scopes>
<Scope>Files.Read.All</Scope>
<Scope>offline_access</Scope>
<Scope>openid</Scope>
<Scope>profile</Scope>
</Scopes>
</WebApplicationInfo>
</VersionOverrides>
</OfficeApp>
I cannot see any problem with it but it doesn't like something. Can anyone spot the problem ?
Here is my office client
Here is my part of the XML:
<VersionOverrides xmlns="http://schemas.microsoft.com/office/mailappversionoverrides" xsi:type="VersionOverridesV1_0">
<VersionOverrides xmlns="http://schemas.microsoft.com/office/mailappversionoverrides" xsi:type="VersionOverridesV1_1">
<Hosts>
<Host xsi:type="MailHost">
<DesktopFormFactor>
<FunctionFile resid="Commands.Url"/>
<ExtensionPoint xsi:type="MessageReadCommandSurface">
<OfficeTab id="TabDefault">
<Group id="msgReadGroup">
<Label resid="GroupLabel"/>
<Control xsi:type="Button" id="msgReadOpenPaneButton">
<Label resid="TaskpaneButton.Label"/>
<Supertip>
<Title resid="TaskpaneButton.Label"/>
<Description resid="TaskpaneButton.Tooltip"/>
</Supertip>
<Icon>
<bt:Image size="16" resid="Icon.16x16"/>
<bt:Image size="32" resid="Icon.32x32"/>
<bt:Image size="80" resid="Icon.80x80"/>
</Icon>
<Action xsi:type="ShowTaskpane">
<SourceLocation resid="Taskpane.Url"/>
</Action>
</Control>
<Control xsi:type="Button" id="ActionButton">
<Label resid="ActionButton.Label"/>
<Supertip>
<Title resid="ActionButton.Label"/>
<Description resid="ActionButton.Tooltip"/>
</Supertip>
<Icon>
<bt:Image size="16" resid="Icon.16x16"/>
<bt:Image size="32" resid="Icon.32x32"/>
<bt:Image size="80" resid="Icon.80x80"/>
</Icon>
<Action xsi:type="ExecuteFunction">
<FunctionName>action</FunctionName>
</Action>
</Control>
</Group>
</OfficeTab>
</ExtensionPoint>
</DesktopFormFactor>
</Host>
</Hosts>
<Resources>
<bt:Images>
<bt:Image id="Icon.16x16" DefaultValue="https://localhost:3000/assets/icon-16.png"/>
<bt:Image id="Icon.32x32" DefaultValue="https://localhost:3000/assets/icon-32.png"/>
<bt:Image id="Icon.80x80" DefaultValue="https://localhost:3000/assets/icon-80.png"/>
</bt:Images>
<bt:Urls>
<bt:Url id="Commands.Url" DefaultValue="https://localhost:3000/commands.html"/>
<bt:Url id="Taskpane.Url" DefaultValue="https://localhost:3000/taskpane.html"/>
</bt:Urls>
<bt:ShortStrings>
<bt:String id="GroupLabel" DefaultValue="Contoso Add-in"/>
<bt:String id="TaskpaneButton.Label" DefaultValue="Show Taskpane"/>
<bt:String id="ActionButton.Label" DefaultValue="Perform an action"/>
</bt:ShortStrings>
<bt:LongStrings>
<bt:String id="TaskpaneButton.Tooltip" DefaultValue="Opens a pane displaying all available properties."/>
<bt:String id="ActionButton.Tooltip" DefaultValue="Perform an action when clicked."/>
</bt:LongStrings>
</Resources>
<WebApplicationInfo>
<Id>97d836ee-5c77-4707-9d54-be09716fxxxx</Id>
<Resource>api://localhost:3000/97d836ee-5c77-4707-9d54-be09716fxxxx</Resource>
<Scopes>
<Scope>Files.Read</Scope>
<Scope>openid</Scope>
<Scope>profile</Scope>
</Scopes>
</WebApplicationInfo>
</VersionOverrides>
</VersionOverrides>
</OfficeApp>
I have also added this code in to check that my client has the requirement set for IdentityAPI and it has :
function IsIdentitySupported() {
if (Office.context.requirements.isSetSupported("IdentityAPI", "1.3")) {
console.log("Supported");
}
else {
// Provide alternate flow/logic.
}
}
Just added my code to a button in React and it still comes back with :
Just as a side note - this is failing also on outlook on the web with exactly the same error.
When I create scaffold another project with Yoman and then use configure-sso npm command, I get :
Error: Unable to set tenant reply urls.
ERROR: Bad Request({"error":{"code":"Request_BadRequest","message":"Invalid object identifier 'undefined'.","innerError":{"date":"2022-10-12T07:00:11","request-id":"972a0b4e-2691-4fe7-a8c6-1f247c2333f5","client-request-id":"972a0b4e-2691-4fe7-a8c6-1f247c2333f5"}}})
The Outlook version specified should support the Identity API 1.3 requirement set. See Outlook client support for all supported versions.
Also you my find your Outlook version listed in the Update History page.
Try to scaffold a new add-in project and then use the configure-sso package to configure it for using SSO like described in the Single sign-on (SSO) quick start.
I ran into a similar issue, and I had to ensure the appropriate VersionOverides are specified. In your manifest, it seems version 1.1 may not be specified appropriately. Try updating to the following:
<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">
<Hosts>
<Host xsi:type="MailHost">
<DesktopFormFactor>
<FunctionFile resid="Commands.Url"/>
<ExtensionPoint xsi:type="MessageReadCommandSurface">
<OfficeTab id="TabDefault">
<Group id="msgReadGroup">
<Label resid="GroupLabel"/>
<Control xsi:type="Button" id="msgReadOpenPaneButton">
<Label resid="TaskpaneButton.Label"/>
<Supertip>
<Title resid="TaskpaneButton.Label"/>
<Description resid="TaskpaneButton.Tooltip"/>
</Supertip>
<Icon>
<bt:Image size="16" resid="Icon.16x16"/>
<bt:Image size="32" resid="Icon.32x32"/>
<bt:Image size="80" resid="Icon.80x80"/>
</Icon>
<Action xsi:type="ShowTaskpane">
<SourceLocation resid="Taskpane.Url"/>
</Action>
</Control>
<Control xsi:type="Button" id="ActionButton">
<Label resid="ActionButton.Label"/>
<Supertip>
<Title resid="ActionButton.Label"/>
<Description resid="ActionButton.Tooltip"/>
</Supertip>
<Icon>
<bt:Image size="16" resid="Icon.16x16"/>
<bt:Image size="32" resid="Icon.32x32"/>
<bt:Image size="80" resid="Icon.80x80"/>
</Icon>
<Action xsi:type="ExecuteFunction">
<FunctionName>action</FunctionName>
</Action>
</Control>
</Group>
</OfficeTab>
</ExtensionPoint>
</DesktopFormFactor>
</Host>
</Hosts>
<Resources>
<bt:Images>
<bt:Image id="Icon.16x16" DefaultValue="https://localhost:3000/assets/icon-16.png"/>
<bt:Image id="Icon.32x32" DefaultValue="https://localhost:3000/assets/icon-32.png"/>
<bt:Image id="Icon.80x80" DefaultValue="https://localhost:3000/assets/icon-80.png"/>
</bt:Images>
<bt:Urls>
<bt:Url id="Commands.Url" DefaultValue="https://localhost:3000/commands.html"/>
<bt:Url id="Taskpane.Url" DefaultValue="https://localhost:3000/taskpane.html"/>
</bt:Urls>
<bt:ShortStrings>
<bt:String id="GroupLabel" DefaultValue="Contoso Add-in"/>
<bt:String id="TaskpaneButton.Label" DefaultValue="Show Taskpane"/>
<bt:String id="ActionButton.Label" DefaultValue="Perform an action"/>
</bt:ShortStrings>
<bt:LongStrings>
<bt:String id="TaskpaneButton.Tooltip" DefaultValue="Opens a pane displaying all available properties."/>
<bt:String id="ActionButton.Tooltip" DefaultValue="Perform an action when clicked."/>
</bt:LongStrings>
</Resources>
<WebApplicationInfo>
<Id>{Client_ID}</Id>
<Resource>api://localhost:3000/{Client_ID}</Resource>
<Scopes>
<Scope>Files.Read</Scope>
<Scope>openid</Scope>
<Scope>profile</Scope>
</Scopes>
</WebApplicationInfo>
</VersionOverrides>
</VersionOverrides>
</OfficeApp>
I'm trying to have an on send handler assigned to a function within an Outlook addin for an Appointment. I strictly follow the manual, but I'm getting an error on the manifest validation
Error #1:
Mailbox add-in containing ItemSend event is invalid.: Mailbox add-in containing ItemSend event is invalid.
- Details: Mailbox add-in manifest contains ItemSend event in VersionOverrides which is not allowed.
My manifest.xml
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<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>90992a37-6ac0-4e31-8f4d-c35d61ac033b</Id>
<Version>1.0.0.0</Version>
<ProviderName>CKT (dev)</ProviderName>
<DefaultLocale>en-US</DefaultLocale>
<DisplayName DefaultValue="Sync events with CKT Portal (dev)"/>
<Description DefaultValue="Sync events of Outlook with CKT portal (dev)"/>
<IconUrl DefaultValue="https://ckt-d.internal.epo.org/addins/outlook/ckt.gif"/>
<HighResolutionIconUrl DefaultValue="https://ckt-d.internal.epo.org/addins/outlook/ckt-128x128.gif"/>
<SupportUrl DefaultValue="https://ckt-d.internal.epo.org"/>
<AppDomains>
<AppDomain>https://ckt-d.internal.epo.org</AppDomain>
</AppDomains>
<Hosts>
<Host Name="Mailbox"/>
</Hosts>
<Requirements>
<Sets>
<Set Name="Mailbox" MinVersion="1.8"/>
</Sets>
</Requirements>
<FormSettings>
<Form xsi:type="ItemRead">
<DesktopSettings>
<SourceLocation DefaultValue="https://ckt-d.internal.epo.org/addins/outlook/taskpane.html"/>
<RequestedHeight>250</RequestedHeight>
</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>
<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">
<Requirements>
<bt:Sets DefaultMinVersion="1.8">
<bt:Set Name="Mailbox"/>
</bt:Sets>
</Requirements>
<Hosts>
<Host xsi:type="MailHost">
<DesktopFormFactor>
<FunctionFile resid="Taskpane.Url"/>
<ExtensionPoint xsi:type="AppointmentOrganizerCommandSurface">
<OfficeTab id="TabDefault">
<Group id="apptComposeDemoGroup">
<Label resid="groupLabel" />
<!-- Task pane button -->
<Control xsi:type="Button" id="TaskpaneButton">
<Label resid="TaskpaneButton.Label" />
<Supertip>
<Title resid="TaskpaneButton.Label" />
<Description resid="TaskpaneButton.Tooltip" />
</Supertip>
<Icon>
<bt:Image size="16" resid="Icon.16x16" />
<bt:Image size="32" resid="Icon.32x32" />
<bt:Image size="80" resid="Icon.80x80" />
</Icon>
<Action xsi:type="ShowTaskpane">
<SourceLocation resid="Taskpane.Url" />
</Action>
</Control>
</Group>
</OfficeTab>
</ExtensionPoint>
<ExtensionPoint xsi:type="AppointmentAttendeeCommandSurface">
<OfficeTab id="TabDefault">
<Group id="apptReadDemoGroup">
<Label resid="groupLabel" />
<!-- Task pane button -->
<Control xsi:type="Button" id="TaskpaneButton2">
<Label resid="TaskpaneButton2.Label" />
<Supertip>
<Title resid="TaskpaneButton2.Label" />
<Description resid="TaskpaneButton2.Tooltip" />
</Supertip>
<Icon>
<bt:Image size="16" resid="Icon.16x16" />
<bt:Image size="32" resid="Icon.32x32" />
<bt:Image size="80" resid="Icon.80x80" />
</Icon>
<Action xsi:type="ShowTaskpane">
<SourceLocation resid="Taskpane.Url" />
</Action>
</Control>
</Group>
</OfficeTab>
</ExtensionPoint>
<ExtensionPoint xsi:type="Events">
<Event Type="ItemSend" FunctionExecution="synchronous" FunctionName="validateBody" />
</ExtensionPoint>
</DesktopFormFactor>
</Host>
</Hosts>
<Resources>
<bt:Images>
<bt:Image id="Icon.16x16" DefaultValue="https://ckt-d.internal.epo.org/addins/outlook/ckt.gif"/>
<bt:Image id="Icon.32x32" DefaultValue="https://ckt-d.internal.epo.org/addins/outlook/ckt-32x32.gif"/>
<bt:Image id="Icon.80x80" DefaultValue="https://ckt-d.internal.epo.org/addins/outlook/ckt-80x80.gif"/>
</bt:Images>
<bt:Urls>
<bt:Url id="Taskpane.Url" DefaultValue="https://ckt-d.internal.epo.org/addins/outlook/taskpane.html"/>
</bt:Urls>
<bt:ShortStrings>
<bt:String id="groupLabel" DefaultValue="CKT Add-in (dev)"/>
<bt:String id="TaskpaneButton.Label" DefaultValue="CKT (dev)"/>
<bt:String id="TaskpaneButton2.Label" DefaultValue="CKT (dev)"/>
</bt:ShortStrings>
<bt:LongStrings>
<bt:String id="TaskpaneButton.Tooltip" DefaultValue="Sync Outllook events with CKT as Organizer (dev)"/>
<bt:String id="TaskpaneButton2.Tooltip" DefaultValue="Sync Outllook events with CKT as Attendee (dev)"/>
</bt:LongStrings>
</Resources>
</VersionOverrides>
</VersionOverrides>
</OfficeApp>
What am I missing?
Our documentation is updated regarding office store validation with
office-addin-manifest script. Please check here:
https://learn.microsoft.com/en-us/office/dev/add-ins/testing/troubleshoot-manifest#validate-your-manifest-with-office-addin-manifest
Add-ins with On-Send events are not allowed on the add-in store. They can only be installed by the organization admin or manually.
We have created an Outlook add-in to move emails/attachments to SharePoint which works fine for user mailbox but when I move to the shared mailbox the add-in is not visible
Inside get add-ins to tab the add-in is visible but not visible on the ribbon.
We have configured shared mailbox in Exchange and is auto mapped to outlook. The SupportsSharedFolders is set to true and there are no issues while installing the manifest.
Did I miss any step in configuration?
Please help to get the add-in started for the shared mailbox.
EDIT: Im including the manifest file below. Just found that the desktop client is using version override 1.0 and Web and mobile are using version override 1.1.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<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>1111111111111</Id>
<Version>1.0.0.4</Version>
<ProviderName>Contoso</ProviderName>
<DefaultLocale>en-US</DefaultLocale>
<DisplayName DefaultValue="Contoso E-mail"/>
<Description DefaultValue="Contoso E-mail"/>
<IconUrl DefaultValue="https://localhost:3000/assets/Icon64.png"/>
<HighResolutionIconUrl DefaultValue="https://localhost:3000/assets/Icon128.png"/>
<SupportUrl DefaultValue="https://www.Contoso.com/help"/>
<AppDomains>
<AppDomain>https://login.microsoftonline.com</AppDomain>
<AppDomain>https://login.windows.net</AppDomain>
</AppDomains>
<Hosts>
<Host Name="Mailbox"/>
</Hosts>
<Requirements>
<Sets>
<Set Name="Mailbox" MinVersion="1.1"/>
</Sets>
</Requirements>
<FormSettings>
<Form xsi:type="ItemRead">
<DesktopSettings>
<SourceLocation DefaultValue="https://localhost:3000/taskpane.html">
<Override Locale="nl-nl" Value="https://localhost:3000/taskpane_nl.html" />
</SourceLocation>
<RequestedHeight>250</RequestedHeight>
</DesktopSettings>
</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.3">
<bt:Set Name="Mailbox"/>
</bt:Sets>
</Requirements>
<Hosts>
<Host xsi:type="MailHost">
<DesktopFormFactor>
<FunctionFile resid="Commands.Url"/>
<ExtensionPoint xsi:type="MessageReadCommandSurface">
<OfficeTab id="TabDefault">
<Group id="msgReadGroup">
<Label resid="GroupLabel"/>
<Control xsi:type="Button" id="msgReadOpenPaneButton">
<Label resid="TaskpaneButton.Label"/>
<Supertip>
<Title resid="TaskpaneButton.Label"/>
<Description resid="TaskpaneButton.Tooltip"/>
</Supertip>
<Icon>
<bt:Image size="16" resid="Icon.16x16" />
<bt:Image size="32" resid="Icon.32x32"/>
<bt:Image size="80" resid="Icon.80x80"/>
</Icon>
<Action xsi:type="ShowTaskpane">
<SourceLocation resid="Taskpane.Url"/>
</Action>
</Control>
</Group>
</OfficeTab>
</ExtensionPoint>
</DesktopFormFactor>
</Host>
</Hosts>
<Resources>
<bt:Images>
<bt:Image id="Icon.16x16" DefaultValue="https://localhost:3000/assets/Icon16.png">
<bt:Override Locale="nl-nl" Value="https://localhost:3000/assets/Icon16.png" />
</bt:Image>
<bt:Image id="Icon.32x32" DefaultValue="https://localhost:3000/assets/Icon32.png">
<bt:Override Locale="nl-nl" Value="https://localhost:3000/assets/Icon32.png" />
</bt:Image>
<bt:Image id="Icon.80x80" DefaultValue="https://localhost:3000/assets/Icon80.png">
<bt:Override Locale="nl-nl" Value="https://localhost:3000/assets/Icon80.png" />
</bt:Image>
</bt:Images>
<bt:Urls>
<bt:Url id="Commands.Url" DefaultValue="https://localhost:3000/commands.html"/>
<bt:Url id="Taskpane.Url" DefaultValue="https://localhost:3000/taskpane.html"/>
</bt:Urls>
<bt:ShortStrings>
<bt:String id="GroupLabel" DefaultValue="Contoso E-mail"/>
<bt:String id="TaskpaneButton.Label" DefaultValue="Contoso E-mail"/>
</bt:ShortStrings>
<bt:LongStrings>
<bt:String id="TaskpaneButton.Tooltip" DefaultValue="Opens a pane displaying all available properties."/>
</bt:LongStrings>
</Resources>
<VersionOverrides xmlns="http://schemas.microsoft.com/office/mailappversionoverrides/1.1" xsi:type="VersionOverridesV1_1">
<Requirements>
<bt:Sets DefaultMinVersion="1.3">
<bt:Set Name="Mailbox"/>
</bt:Sets>
</Requirements>
<Hosts>
<Host xsi:type="MailHost">
<DesktopFormFactor>
<FunctionFile resid="Commands.Url"/>
<ExtensionPoint xsi:type="MessageReadCommandSurface">
<OfficeTab id="TabDefault">
<Group id="msgReadGroup">
<Label resid="GroupLabel"/>
<Control xsi:type="Button" id="msgReadOpenPaneButton">
<Label resid="TaskpaneButton.Label"/>
<Supertip>
<Title resid="TaskpaneButton.Label"/>
<Description resid="TaskpaneButton.Tooltip"/>
</Supertip>
<Icon>
<bt:Image size="16" resid="Icon.16x16"/>
<bt:Image size="32" resid="Icon.32x32"/>
<bt:Image size="80" resid="Icon.80x80"/>
</Icon>
<Action xsi:type="ShowTaskpane">
<SourceLocation resid="Taskpane.Url"/>
</Action>
</Control>
</Group>
</OfficeTab>
</ExtensionPoint>
</DesktopFormFactor>
</Host>
<Host xsi:type="MailHost">
<MobileFormFactor>
<FunctionFile resid="Commands.Url" />
<ExtensionPoint xsi:type="MobileMessageReadCommandSurface">
<Group id="mobileMsgRead">
<Label resid="GroupLabel" />
<Control xsi:type="MobileButton" id="TaskPaneBtn">
<Label resid="TaskpaneButton.Label" />
<Icon xsi:type="bt:MobileIconList">
<bt:Image size="25" scale="1" resid="Icon.25x25" />
<bt:Image size="25" scale="2" resid="Icon.25x25" />
<bt:Image size="25" scale="3" resid="Icon.25x25" />
<bt:Image size="32" scale="1" resid="Icon.32x32" />
<bt:Image size="32" scale="2" resid="Icon.32x32" />
<bt:Image size="32" scale="3" resid="Icon.32x32" />
<bt:Image size="48" scale="1" resid="Icon.48x48" />
<bt:Image size="48" scale="2" resid="Icon.48x48" />
<bt:Image size="48" scale="3" resid="Icon.48x48" />
</Icon>
<Action xsi:type="ShowTaskpane">
<SourceLocation resid="Taskpane.Url" />
</Action>
</Control>
</Group>
</ExtensionPoint>
</MobileFormFactor>
</Host>
</Hosts>
<Resources>
<bt:Images>
<bt:Image id="Icon.16x16" DefaultValue="https://localhost:3000/assets/Icon16.png">
<bt:Override Locale="nl-nl" Value="https://localhost:3000/assets/Icon16.png" />
</bt:Image>
<bt:Image id="Icon.32x32" DefaultValue="https://localhost:3000/assets/Icon32.png">
<bt:Override Locale="nl-nl" Value="https://localhost:3000/assets/Icon32.png" />
</bt:Image>
<bt:Image id="Icon.80x80" DefaultValue="https://localhost:3000/assets/Icon80.png">
<bt:Override Locale="nl-nl" Value="https://localhost:3000/assets/Icon80.png" />
</bt:Image>
</bt:Images>
<bt:Urls>
<bt:Url id="Commands.Url" DefaultValue="https://localhost:3000/commands.html"/>
<bt:Url id="Taskpane.Url" DefaultValue="https://localhost:3000/taskpane.html"/>
</bt:Urls>
<bt:ShortStrings>
<bt:String id="GroupLabel" DefaultValue="Contoso E-mail"/>
<bt:String id="TaskpaneButton.Label" DefaultValue="Contoso E-mail"/>
</bt:ShortStrings>
<bt:LongStrings>
<bt:String id="TaskpaneButton.Tooltip" DefaultValue="Opens a pane displaying all available properties."/>
</bt:LongStrings>
</Resources>
</VersionOverrides>
</VersionOverrides>
</OfficeApp>
You have mentioned that "SupportsSharedFolders" is set true but the manifest you shared does not have "SupportsSharedFolders". Please add "SupportsSharedFolders" as mentioned in docs and check.
For some reason, when I load the manifest file into Outlook, the default icon is displaying for my Outlook add-in. The add-in is being hosted internally at our organization—would that cause this issue?
Below I have selected the pertinent sections of my manifest file. Please let me know if any other information is needed. Any help would be appreciated.
Manifest hosts:
<Hosts>
<Host xsi:type="MailHost">
<DesktopFormFactor>
<ExtensionPoint xsi:type="AppointmentOrganizerCommandSurface">
<OfficeTab id="TabDefault">
<Group id="msgReadGroup">
<Label resid="groupLabel" />
<Control xsi:type="Button" id="msgReadOpenPaneButton">
<Label resid="paneAppointmentButtonLabel" />
<Supertip>
<Title resid="paneCreateAptSuperTipTitle" />
<Description resid="paneCreateAptTipDescription" />
</Supertip>
<Icon>
<bt:Image size="16" resid="icon16" />
<bt:Image size="32" resid="icon32" />
<bt:Image size="80" resid="icon80" />
</Icon>
<Action xsi:type="ShowTaskpane">
<SourceLocation resid="appointmentCreatePaneURL" />
</Action>
</Control>
</Group>
</OfficeTab>
</ExtensionPoint>
</DesktopFormFactor>
</Host>
</Hosts>
Manifest resources:
<Resources>
...
<bt:Images>
<bt:Image id="icon16" DefaultValue="https://intranet-domain.com/assets/icon-16.png" />
<bt:Image id="icon32" DefaultValue="https://intranet-domain.com/assets/icon-32.png" />
<bt:Image id="icon80" DefaultValue="https://intranet-domain.com/assets/icon-80.png" />
</bt:Images>
...
</Resources>
I used office-generator to scaffold out an Outlook addin and it seems to show up and run when mail opened in read mode but its not showing up in the addins section when a new mail is being composed. I wanted to show the addin to show up in compose mode and once clicked open the addin in pane.
Following is the generated manifest.xml:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<OfficeApp xmlns="http://schemas.microsoft.com/office/appforoffice/1.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="MailApp" xmlns:bt="http://schemas.microsoft.com/office/officeappbasictypes/1.0">
<Id>f1a2f021-ef67-4e8f-a08c-e24700c36c3d</Id>
<Version>1.0.0.0</Version>
<ProviderName>[Provider name]</ProviderName>
<DefaultLocale>en-US</DefaultLocale>
<DisplayName DefaultValue="Test"/>
<Description DefaultValue="[Outlook Add-in description]"/>
<IconUrl DefaultValue="https://localhost:8443/images/icon-32.png"/>
<HighResolutionIconUrl DefaultValue="https://localhost:8443/images/hi-res-icon.png"/>
<Hosts>
<Host Name="Mailbox"/>
</Hosts>
<Requirements>
<Sets>
<Set Name="MailBox" MinVersion="1.1"/>
</Sets>
</Requirements>
<FormSettings>
<Form xsi:type="ItemRead">
<DesktopSettings>
<SourceLocation DefaultValue="https://localhost:8443/appread/home/home.html"/>
<RequestedHeight>250</RequestedHeight>
</DesktopSettings>
</Form>
<Form xsi:type="ItemEdit">
<DesktopSettings>
<SourceLocation DefaultValue="https://localhost:8443/appcompose/home/home.html"/>
</DesktopSettings>
</Form>
</FormSettings>
<Permissions>ReadWriteItem</Permissions>
<Rule xsi:type="RuleCollection" Mode="Or">
<Rule xsi:type="ItemIs" ItemType="Message" FormType="Edit" />
<Rule xsi:type="ItemIs" ItemType="Message" FormType="Read"/>
<Rule xsi:type="ItemIs" ItemType="Appointment" FormType="Edit"/>
<Rule xsi:type="ItemIs" ItemType="Appointment" FormType="Read"/>
</Rule>
<DisableEntityHighlighting>false</DisableEntityHighlighting>
<VersionOverrides xmlns="http://schemas.microsoft.com/office/mailappversionoverrides" xsi:type="VersionOverridesV1_0">
<Hosts>
<Host xsi:type="MailHost">
<DesktopFormFactor>
<FunctionFile resid="funcFile"/>
<ExtensionPoint xsi:type="MessageReadCommandSurface">
<OfficeTab id="TabDefault">
<Group id="msgReadCmdGroup">
<Label resid="groupLabel"/>
<Control xsi:type="Button" id="msgReadPaneButton">
<Label resid="msgReadPaneButtonLabel"/>
<Supertip>
<Title resid="msgReadPaneButtonTitle"/>
<Description resid="msgReadPaneButtonDesc"/>
</Supertip>
<Icon>
<bt:Image size="16" resid="icon-16"/>
<bt:Image size="32" resid="icon-32"/>
<bt:Image size="80" resid="icon-80"/>
</Icon>
<Action xsi:type="ShowTaskpane">
<SourceLocation resid="readPaneUrl"/>
</Action>
</Control>
</Group>
</OfficeTab>
</ExtensionPoint>
<ExtensionPoint xsi:type="AppointmentAttendeeCommandSurface">
<OfficeTab id="TabDefault">
<Group id="attendeeCmdGroup">
<Label resid="groupLabel"/>
<Control xsi:type="Button" id="attendeePaneButton">
<Label resid="attendeePaneButtonLabel"/>
<Supertip>
<Title resid="attendeePaneButtonTitle"/>
<Description resid="attendeePaneButtonDesc"/>
</Supertip>
<Icon>
<bt:Image size="16" resid="icon-16"/>
<bt:Image size="32" resid="icon-32"/>
<bt:Image size="80" resid="icon-80"/>
</Icon>
<Action xsi:type="ShowTaskpane">
<SourceLocation resid="readPaneUrl"/>
</Action>
</Control>
</Group>
</OfficeTab>
</ExtensionPoint>
<ExtensionPoint xsi:type="AppointmentOrganizerCommandSurface">
<OfficeTab id="TabDefault">
<Group id="organizerCmdGroup">
<Label resid="groupLabel"/>
<Control xsi:type="Button" id="organizerGetSubject">
<Label resid="getSubjectLabel"/>
<Supertip>
<Title resid="getSubjectTitle"/>
<Description resid="getSubjectDesc"/>
</Supertip>
<Icon>
<bt:Image size="16" resid="icon-16"/>
<bt:Image size="32" resid="icon-32"/>
<bt:Image size="80" resid="icon-80"/>
</Icon>
<Action xsi:type="ExecuteFunction">
<FunctionName>getSubject</FunctionName>
</Action>
</Control>
<Control xsi:type="Menu" id="organizerMenu">
<Label resid="menuLabel"/>
<Supertip>
<Title resid="menuTitle"/>
<Description resid="menuDescription"/>
</Supertip>
<Icon>
<bt:Image size="16" resid="icon-16"/>
<bt:Image size="32" resid="icon-32"/>
<bt:Image size="80" resid="icon-80"/>
</Icon>
<Items>
<Item id="organizerSetSubject">
<Label resid="setSubjectLabel"/>
<Supertip>
<Title resid="setSubjectTitle"/>
<Description resid="setSubjectDesc"/>
</Supertip>
<Icon>
<bt:Image size="16" resid="icon-16"/>
<bt:Image size="32" resid="icon-32"/>
<bt:Image size="80" resid="icon-80"/>
</Icon>
<Action xsi:type="ExecuteFunction">
<FunctionName>setSubject</FunctionName>
</Action>
</Item>
<Item id="organizerAddRecip">
<Label resid="addRecipLabel"/>
<Supertip>
<Title resid="addRecipTitle"/>
<Description resid="addRecipDesc"/>
</Supertip>
<Icon>
<bt:Image size="16" resid="icon-16"/>
<bt:Image size="32" resid="icon-32"/>
<bt:Image size="80" resid="icon-80"/>
</Icon>
<Action xsi:type="ExecuteFunction">
<FunctionName>addToRecipients</FunctionName>
</Action>
</Item>
</Items>
</Control>
</Group>
</OfficeTab>
</ExtensionPoint>
</DesktopFormFactor>
</Host>
</Hosts>
<Resources>
<bt:Images>
<bt:Image id="icon-16" DefaultValue="https://localhost:8443/images/icon-16.png"/>
<bt:Image id="icon-32" DefaultValue="https://localhost:8443/images/icon-32.png"/>
<bt:Image id="icon-80" DefaultValue="https://localhost:8443/images/icon-80.png"/>
</bt:Images>
<bt:Urls>
<bt:Url id="funcFile" DefaultValue="https://localhost:8443/FunctionFile/Functions.html"/>
<bt:Url id="readPaneUrl" DefaultValue="https://localhost:8443/appread/home/home.html"/>
</bt:Urls>
<bt:ShortStrings>
<bt:String id="groupLabel" DefaultValue="Sample Add-in"/>
<bt:String id="msgReadPaneButtonLabel" DefaultValue="See message details"/>
<bt:String id="msgReadPaneButtonTitle" DefaultValue="See message details"/>
<bt:String id="attendeePaneButtonLabel" DefaultValue="See appointment details"/>
<bt:String id="attendeePaneButtonTitle" DefaultValue="See appointment details"/>
<bt:String id="setSubjectLabel" DefaultValue="Set subject"/>
<bt:String id="setSubjectTitle" DefaultValue="Set subject"/>
<bt:String id="getSubjectLabel" DefaultValue="Get subject"/>
<bt:String id="getSubjectTitle" DefaultValue="Get subject"/>
<bt:String id="addRecipLabel" DefaultValue="Add recipient"/>
<bt:String id="addRecipTitle" DefaultValue="Add recipient"/>
<bt:String id="menuLabel" DefaultValue="Modify message"/>
<bt:String id="menuTitle" DefaultValue="Modify message"/>
</bt:ShortStrings>
<bt:LongStrings>
<bt:String id="msgReadPaneButtonDesc" DefaultValue="Opens a task pane showing the subject and sender of the currently selected message"/>
<bt:String id="attendeePaneButtonDesc" DefaultValue="Opens a task pane showing the subject and sender of the currently selected appointment"/>
<bt:String id="setSubjectDesc" DefaultValue="Sets the subject to 'Hello World!'"/>
<bt:String id="getSubjectDesc" DefaultValue="Gets the current subject and displays it in the info bar"/>
<bt:String id="addRecipDesc" DefaultValue="Add yourself to the recipient list (the To line for messages, the Required attendees line for appointments)"/>
<bt:String id="menuDescription" DefaultValue="Expand this menu to set this subject or add yourself to the To line."/>
</bt:LongStrings>
</Resources>
</VersionOverrides>
</OfficeApp>
This is handled in the VersionOverides section. In the manifest you included, you'll notice an ExentionPoint defined as <ExtensionPoint xsi:type="MessageReadCommandSurface">. This defines an extension point for Message Reading.
To enable the add-in during Compose you'll need to add an ExtentionPoint for MessageComposeCommandSurface.
If you would like to only show during Compose, simply remove the MessageReadCommandSurface section. The same applies to AppointmentAttendeeCommandSurface (reading appointments you were invited to) and AppointmentOrganizerCommandSurface (reading appointments you created).