Display an add-in command button only if there are attachments - outlook

I try to make an add-in command button to only be visible when there are attachments. Is it possible?
I expected I could add a "Rule" node to the "Control" node but it cannot be done:
<Control xsi:type="Button" id="hButton2">
<Label resid="hButton2Label" />
<Supertip>
<Title resid="hButton2SupertipT" />
<Description resid="hButton2SupertipD" />
</Supertip>
<Icon>
<bt:Image size="16" resid="h-button2-icon-16" />
<bt:Image size="32" resid="h-button2-icon-32" />
<bt:Image size="80" resid="h-button2-icon-80" />
</Icon>
<Action xsi:type="ShowTaskpane">
<SourceLocation resid="hSourceLocation2"/>
</Action>
<Rule xsi:type="ItemHasAttachment" /> <-------------------- won't work
</Control>

The Rule element is only applicable to the CustomPane extension point and can't be defined in a Control element: https://dev.office.com/docs/add-ins/outlook/manifests/define-add-in-commands. See also: https://dev.office.com/docs/add-ins/outlook/manifests/activation-rules

Related

Add-in silently fails to install on Mac Outlook

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>

This is an invalid xsi:type DetectedEntity in outlook add-in

I am trying to detect a pattern when a message is read in an outlook mail (web and desktop), so I decided to add the DetectedEntity extension point but I keep getting the following error on the web and it is not also working on desktop office 2016.
This app can't be installed. The manifest file doesn't conform to the
schema definition. This is an invalid xsi:type
'http://schemas.microsoft.com/office/mailappversionoverrides:DetectedEntity'...
This is an invalid xsi:type
'http://schemas.microsoft.com/office/mailappversionoverrides:DetectedEntity'.
MANIFEST
<!-- Message Read -->
<ExtensionPoint xsi:type="MessageComposeCommandSurface">
<!-- Use the default tab of the ExtensionPoint or create your own with <CustomTab id="myTab"> -->
<OfficeTab id="TabDefault">
<!-- Up to 6 Groups added per Tab -->
<Group id="msgComposeCmdGroup">
<Label resid="GroupLabel" />
<!-- Launch the add-in : task pane button -->
<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>
<!-- Go to http://aka.ms/ButtonCommands to learn how to add more Controls: ExecuteFunction and Menu -->
</Group>
</OfficeTab>
</ExtensionPoint>
<ExtensionPoint xsi:type="DetectedEntity">
<Label resid="residLabelName"/>
<!--If you opt to include RequestedHeight, it must be between 140px to 450px, inclusive.-->
<!--<RequestedHeight>360</RequestedHeight>-->
<SourceLocation resid="Taskpane.Url" />
<Rule xsi:type="RuleCollection" Mode="And">
<Rule xsi:type="ItemIs" ItemType="Message" />
<Rule xsi:type="ItemHasKnownEntity" EntityType="MeetingSuggestion" Highlight="all" />
<Rule xsi:type="ItemHasKnownEntity" EntityType="Address" Highlight="none" />
</Rule>
</ExtensionPoint>
<!-- Go to http://aka.ms/ExtensionPointsCommands to learn how to add more Extension Points: MessageRead, AppointmentOrganizer, AppointmentAttendee -->
</DesktopFormFactor>
How do I fix the Issue> I need a way to implement this feature.
DetectedEntities is only supported from VersionOverrides V1_1, if you are using V1_0 this error will be thrown.
The containing VersionOverrides element must have xsi:type attribute value as VersionOverridesV1_1.

Microsoft Outlook add-in change request

I have developed an outlook add-in and posted on Microsoft appstore.
But I got validation error report with change request as below:
4.12.1 Add in commands do not appear in the Outlook 2016 Desktop Client or in the Outlook 2016 Client on Mac - there appears to be an issue in the version overrides element in your manifest file
This is the manifest:
<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">
<!-- Begin Basic Settings: Add-in metadata, used for all versions of Office unless override provided. -->
<!-- IMPORTANT! Id must be unique for your add-in, if you reuse this manifest ensure that you change this id to a new GUID. -->
<Id>a0fc93fd-3de0-4a0a-b856-8f5e15c8f91d</Id>
<!--Version. Updates from the store only get triggered if there is a version change. -->
<Version>1.0.0.0</Version>
<ProviderName>WritingAssistant</ProviderName>
<DefaultLocale>en-US</DefaultLocale>
<!-- The display name of your add-in. Used on the store and various places of the Office UI such as the add-ins dialog. -->
<DisplayName DefaultValue="WritingAssistant for Outlook" />
<Description DefaultValue="The fastest, easiest way to improve your grammar and writing."/>
<IconUrl DefaultValue="https://outlookplugin.writing-assistant.com/Images/logo-64.png"/>
<HighResolutionIconUrl DefaultValue="https://outlookplugin.writing-assistant.com/Images/logo-80.png"/>
<SupportUrl DefaultValue="https://www.writing-assistant.com/contact.htm" />
<!-- Domains that will be allowed when navigating. For example, if you use ShowTaskpane and then have an href link, navigation will only be allowed if the domain is on this list. -->
<AppDomains>
<AppDomain>AppDomain1</AppDomain>
<AppDomain>AppDomain2</AppDomain>
<AppDomain>AppDomain3</AppDomain>
</AppDomains>
<!--End Basic Settings. -->
<Hosts>
<Host Name="Mailbox" />
</Hosts>
<Requirements>
<Sets>
<Set Name="Mailbox" MinVersion="1.5" />
</Sets>
</Requirements>
<FormSettings>
<Form xsi:type="ItemRead">
<DesktopSettings>
<SourceLocation DefaultValue="https://outlookplugin.writing-assistant.com/MessageRead.html"/>
<RequestedHeight>250</RequestedHeight>
</DesktopSettings>
</Form>
</FormSettings>
<Permissions>ReadWriteItem</Permissions>
<Rule xsi:type="RuleCollection" Mode="Or">
<Rule xsi:type="ItemIs" ItemType="Message" FormType="ReadOrEdit" />
</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" />
</bt:Sets>
</Requirements>
<Hosts>
<Host xsi:type="MailHost">
<DesktopFormFactor>
<!-- Location of the Functions that UI-less buttons can trigger (ExecuteFunction Actions). -->
<FunctionFile resid="Contoso.FunctionFile.Url" />
<!-- Message Read -->
<ExtensionPoint xsi:type="MessageComposeCommandSurface">
<!-- Use the default tab of the ExtensionPoint or create your own with <CustomTab id="myTab"> -->
<CustomTab id="customTabLabel">
<Group id="msgReadGroup">
<Label resid="groupLabel" />
<!-- Launch the add-in : task pane button -->
<Control xsi:type="Button" id="msgReadOpenPaneButton">
<Label resid="paneReadButtonLabel" />
<Supertip>
<Title resid="paneReadSuperTipTitle" />
<Description resid="paneReadSuperTipDescription" />
</Supertip>
<Icon>
<bt:Image size="16" resid="Contoso.TaskpaneButton.Icon16" />
<bt:Image size="32" resid="Contoso.TaskpaneButton.Icon32" />
<bt:Image size="64" resid="Contoso.TaskpaneButton.Icon64" />
<bt:Image size="80" resid="Contoso.TaskpaneButton.Icon80" />
</Icon>
<Action xsi:type="ShowTaskpane">
<SourceLocation resid="Contoso.Taskpane.Url" />
</Action>
</Control>
</Group>
<Group id="Contoso.Tab1.Group5">
<Label resid="Contoso.Tab1.GroupLabel2" />
<Control xsi:type="Button" id="Contoso.TranslateWord">
<Label resid="Contoso.TranslateWord.Label" />
<Supertip>
<Title resid="Contoso.TranslateWord.Label" />
<Description resid="Contoso.TranslateWord.Tooltip" />
</Supertip>
<Icon>
<bt:Image size="16" resid="Contoso.TranslateWord.Icon16" />
<bt:Image size="32" resid="Contoso.TranslateWord.Icon32" />
<bt:Image size="64" resid="Contoso.TranslateWord.Icon64" />
<bt:Image size="80" resid="Contoso.TranslateWord.Icon80" />
</Icon>
<Action xsi:type="ShowTaskpane">
<SourceLocation resid="Contoso.TranslateWord.Url" />
</Action>
</Control>
<Control xsi:type="Button" id="Contoso.DS">
<Label resid="Contoso.DS.Label" />
<Supertip>
<Title resid="Contoso.DS.Label" />
<Description resid="Contoso.DS.Tooltip" />
</Supertip>
<Icon>
<bt:Image size="16" resid="Contoso.DS.Icon16" />
<bt:Image size="32" resid="Contoso.DS.Icon32" />
<bt:Image size="64" resid="Contoso.DS.Icon64" />
<bt:Image size="80" resid="Contoso.DS.Icon80" />
</Icon>
<Action xsi:type="ShowTaskpane">
<SourceLocation resid="Contoso.DS.Url" />
</Action>
</Control>
</Group>
<Group id="Contoso.Tab1.Group2">
<Label resid="Contoso.Tab1.GroupLabel2" />
<Control xsi:type="Button" id="Contoso.MyDictionary">
<Label resid="Contoso.MyDictionary.Label" />
<Supertip>
<Title resid="Contoso.MyDictionary.Label" />
<Description resid="Contoso.MyDictionary.Tooltip" />
</Supertip>
<Icon>
<bt:Image size="16" resid="Contoso.MyDictionary.Icon16" />
<bt:Image size="32" resid="Contoso.MyDictionary.Icon32" />
<bt:Image size="64" resid="Contoso.MyDictionary.Icon64" />
<bt:Image size="80" resid="Contoso.MyDictionary.Icon80" />
</Icon>
<Action xsi:type="ShowTaskpane">
<SourceLocation resid="Contoso.MyDictionary.Url" />
</Action>
</Control>
<Control xsi:type="Button" id="Contoso.MyStatistics">
<Label resid="Contoso.MyStatistics.Label" />
<Supertip>
<Title resid="Contoso.MyStatistics.Label" />
<Description resid="Contoso.MyStatistics.Tooltip" />
</Supertip>
<Icon>
<bt:Image size="16" resid="Contoso.MyStatistics.Icon16" />
<bt:Image size="32" resid="Contoso.MyStatistics.Icon32" />
<bt:Image size="64" resid="Contoso.MyStatistics.Icon64" />
<bt:Image size="80" resid="Contoso.MyStatistics.Icon80" />
</Icon>
<Action xsi:type="ShowTaskpane">
<SourceLocation resid="Contoso.MyStatistics.Url" />
</Action>
</Control>
<Control xsi:type="Button" id="Contoso.Download">
<Label resid="Contoso.Download.Label" />
<Supertip>
<Title resid="Contoso.Download.Label" />
<Description resid="Contoso.Download.Tooltip" />
</Supertip>
<Icon>
<bt:Image size="16" resid="Contoso.Download.Icon16" />
<bt:Image size="32" resid="Contoso.Download.Icon32" />
<bt:Image size="64" resid="Contoso.Download.Icon64" />
<bt:Image size="80" resid="Contoso.Download.Icon80" />
</Icon>
<Action xsi:type="ExecuteFunction">
<FunctionName>report</FunctionName>
</Action>
</Control>
</Group>
<Group id="Contoso.Tab1.Group4">
<Label resid="Contoso.Tab1.GroupLabel4" />
<Control xsi:type="Button" id="Contoso.setting">
<Label resid="Contoso.setting.Label" />
<Supertip>
<Title resid="Contoso.setting.Label" />
<Description resid="Contoso.setting.Tooltip" />
</Supertip>
<Icon>
<bt:Image size="16" resid="Contoso.setting.Icon16" />
<bt:Image size="32" resid="Contoso.setting.Icon32" />
<bt:Image size="64" resid="Contoso.setting.Icon64" />
<bt:Image size="80" resid="Contoso.setting.Icon80" />
</Icon>
<Action xsi:type="ShowTaskpane">
<SourceLocation resid="Contoso.Taskpane5.Url" />
</Action>
</Control>
<Control xsi:type="Button" id="Contoso.FAQ">
<Label resid="Contoso.FAQ.Label" />
<Supertip>
<Title resid="Contoso.FAQ.Label" />
<Description resid="Contoso.FAQ.Tooltip" />
</Supertip>
<Icon>
<bt:Image size="16" resid="Contoso.FAQ.Icon16" />
<bt:Image size="32" resid="Contoso.FAQ.Icon32" />
<bt:Image size="64" resid="Contoso.FAQ.Icon64" />
<bt:Image size="80" resid="Contoso.FAQ.Icon80" />
</Icon>
<Action xsi:type="ExecuteFunction">
<FunctionName>faq</FunctionName>
</Action>
</Control>
<Control xsi:type="Button" id="Contoso.Tour">
<Label resid="Contoso.Tour.Label" />
<Supertip>
<Title resid="Contoso.Tour.Label" />
<Description resid="Contoso.Tour.Tooltip" />
</Supertip>
<Icon>
<bt:Image size="16" resid="Contoso.Tour.Icon16" />
<bt:Image size="32" resid="Contoso.Tour.Icon32" />
<bt:Image size="64" resid="Contoso.Tour.Icon64" />
<bt:Image size="80" resid="Contoso.Tour.Icon80" />
</Icon>
<Action xsi:type="ExecuteFunction">
<FunctionName>Tour</FunctionName>
</Action>
</Control>
<Control xsi:type="Button" id="Contoso.logout">
<Label resid="Contoso.logout.Label" />
<Supertip>
<Title resid="Contoso.logout.Label" />
<Description resid="Contoso.logout.Tooltip" />
</Supertip>
<Icon>
<bt:Image size="16" resid="Contoso.logout.Icon16" />
<bt:Image size="32" resid="Contoso.logout.Icon32" />
<bt:Image size="64" resid="Contoso.logout.Icon64" />
<bt:Image size="80" resid="Contoso.logout.Icon80" />
</Icon>
<Action xsi:type="ShowTaskpane">
<SourceLocation resid="Contoso.logout.Url" />
</Action>
</Control>
</Group>
<Group id="Contoso.Tab1.Group3">
<Label resid="Contoso.Tab1.GroupLabel3" />
<Control xsi:type="Button" id="Contoso.Check">
<Label resid="Contoso.Check.Label" />
<Supertip>
<Title resid="Contoso.Check.Label" />
<Description resid="Contoso.Check.Tooltip" />
</Supertip>
<Icon>
<bt:Image size="16" resid="Contoso.Check.Icon16" />
<bt:Image size="32" resid="Contoso.Check.Icon32" />
<bt:Image size="64" resid="Contoso.Check.Icon64" />
<bt:Image size="80" resid="Contoso.Check.Icon80" />
</Icon>
<Action xsi:type="ShowTaskpane">
<SourceLocation resid="Contoso.Taskpane3.Url" />
</Action>
</Control>
<Control xsi:type="Button" id="Contoso.Clear">
<Label resid="Contoso.Clear.Label" />
<Supertip>
<Title resid="Contoso.Clear.Label" />
<Description resid="Contoso.Clear.Tooltip" />
</Supertip>
<Icon>
<bt:Image size="16" resid="Contoso.Clear.Icon16" />
<bt:Image size="32" resid="Contoso.Clear.Icon32" />
<bt:Image size="64" resid="Contoso.Clear.Icon64" />
<bt:Image size="80" resid="Contoso.Clear.Icon80" />
</Icon>
<Action xsi:type="ShowTaskpane">
<SourceLocation resid="Contoso.Taskpane4.Url" />
</Action>
</Control>
<Control xsi:type="Button" id="Contoso.Error">
<Label resid="Contoso.ErrorList.Label" />
<Supertip>
<Title resid="Contoso.ErrorList.Label" />
<Description resid="Contoso.ErrorList.Tooltip" />
</Supertip>
<Icon>
<bt:Image size="16" resid="Contoso.ErrList.Icon16" />
<bt:Image size="32" resid="Contoso.ErrList.Icon32" />
<bt:Image size="64" resid="Contoso.ErrList.Icon64" />
<bt:Image size="80" resid="Contoso.ErrList.Icon80" />
</Icon>
<Action xsi:type="ShowTaskpane">
<!--Provide a url resource id for the location that will be displayed on the task pane -->
<SourceLocation resid="Contoso.ErrorList.Url" />
</Action>
</Control>
</Group>
<Label resid="customTabLabel.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="Contoso.setting.Icon16" DefaultValue="https://outlookplugin.writing-assistant.com/Images/setting-16.png" />
<bt:Image id="Contoso.setting.Icon32" DefaultValue="https://outlookplugin.writing-assistant.com/Images/setting-32.png" />
<bt:Image id="Contoso.setting.Icon64" DefaultValue="https://outlookplugin.writing-assistant.com/Images/setting-64.png" />
<bt:Image id="Contoso.setting.Icon80" DefaultValue="https://outlookplugin.writing-assistant.com/Images/setting-80.png" />
<bt:Image id="Contoso.TaskpaneButton.Icon16" DefaultValue="https://outlookplugin.writing-assistant.com/Images/logo-16.png" />
<bt:Image id="Contoso.TaskpaneButton.Icon32" DefaultValue="https://outlookplugin.writing-assistant.com/Images/logo-32.png" />
<bt:Image id="Contoso.TaskpaneButton.Icon64" DefaultValue="https://outlookplugin.writing-assistant.com/Images/logo-64.png" />
<bt:Image id="Contoso.TaskpaneButton.Icon80" DefaultValue="https://outlookplugin.writing-assistant.com/Images/logo-80.png" />
<bt:Image id="Contoso.Check.Icon16" DefaultValue="https://outlookplugin.writing-assistant.com/Images/check-16.png" />
<bt:Image id="Contoso.Check.Icon32" DefaultValue="https://outlookplugin.writing-assistant.com/Images/check-32.png" />
<bt:Image id="Contoso.Check.Icon64" DefaultValue="https://outlookplugin.writing-assistant.com/Images/check-64.png" />
<bt:Image id="Contoso.Check.Icon80" DefaultValue="https://outlookplugin.writing-assistant.com/Images/check-80.png" />
<bt:Image id="Contoso.MyDictionary.Icon16" DefaultValue="https://outlookplugin.writing-assistant.com/Images/my-dictionary-16.png" />
<bt:Image id="Contoso.MyDictionary.Icon32" DefaultValue="https://outlookplugin.writing-assistant.com/Images/my-dictionary-32.png" />
<bt:Image id="Contoso.MyDictionary.Icon64" DefaultValue="https://outlookplugin.writing-assistant.com/Images/my-dictionary-64.png" />
<bt:Image id="Contoso.Download.Icon80" DefaultValue="https://outlookplugin.writing-assistant.com/Images/download-80.png" />
<bt:Image id="Contoso.TranslateWord.Icon16" DefaultValue="https://outlookplugin.writing-assistant.com/Images/translate-word-16.png" />
<bt:Image id="Contoso.TranslateWord.Icon32" DefaultValue="https://outlookplugin.writing-assistant.com/Images/translate-word-32.png" />
<bt:Image id="Contoso.TranslateWord.Icon64" DefaultValue="https://outlookplugin.writing-assistant.com/Images/translate-word-64.png" />
<bt:Image id="Contoso.TranslateWord.Icon80" DefaultValue="https://outlookplugin.writing-assistant.com/Images/translate-word-80.png" />
<bt:Image id="Contoso.WordDefinition.Icon16" DefaultValue="https://outlookplugin.writing-assistant.com/Images/wd-16.png" />
<bt:Image id="Contoso.WordDefinition.Icon32" DefaultValue="https://outlookplugin.writing-assistant.com/Images/wd-32.png" />
<bt:Image id="Contoso.WordDefinition.Icon64" DefaultValue="https://outlookplugin.writing-assistant.com/Images/wd-64.png" />
<bt:Image id="Contoso.WordDefinition.Icon80" DefaultValue="https://outlookplugin.writing-assistant.com/Images/wd-80.png" />
<bt:Image id="Contoso.Synonyms.Icon16" DefaultValue="https://outlookplugin.writing-assistant.com/Images/synonyms-16.png" />
<bt:Image id="Contoso.Synonyms.Icon32" DefaultValue="https://outlookplugin.writing-assistant.com/Images/synonyms-32.png" />
<bt:Image id="Contoso.Synonyms.Icon64" DefaultValue="https://outlookplugin.writing-assistant.com/Images/synonyms-64.png" />
<bt:Image id="Contoso.Synonyms.Icon80" DefaultValue="https://outlookplugin.writing-assistant.com/Images/synonyms-80.png" />
<bt:Image id="Contoso.Clear.Icon16" DefaultValue="https://outlookplugin.writing-assistant.com/Images/clear-icon-16.png" />
<bt:Image id="Contoso.Clear.Icon32" DefaultValue="https://outlookplugin.writing-assistant.com/Images/clear-icon-32.png" />
<bt:Image id="Contoso.Clear.Icon64" DefaultValue="https://outlookplugin.writing-assistant.com/Images/clear-icon-64.png" />
<bt:Image id="Contoso.Clear.Icon80" DefaultValue="https://outlookplugin.writing-assistant.com/Images/clear-icon-80.png" />
<bt:Image id="Contoso.logout.Icon16" DefaultValue="https://outlookplugin.writing-assistant.com/Images/logout-16.png" />
<bt:Image id="Contoso.logout.Icon32" DefaultValue="https://outlookplugin.writing-assistant.com/Images/logout-32.png" />
<bt:Image id="Contoso.logout.Icon64" DefaultValue="https://outlookplugin.writing-assistant.com/Images/logout-64.png" />
<bt:Image id="Contoso.logout.Icon80" DefaultValue="https://outlookplugin.writing-assistant.com/Images/logout-80.png" />
<bt:Image id="Contoso.ErrList.Icon16" DefaultValue="https://outlookplugin.writing-assistant.com/Images/list-16.png" />
<bt:Image id="Contoso.ErrList.Icon32" DefaultValue="https://outlookplugin.writing-assistant.com/Images/list-32.png" />
<bt:Image id="Contoso.ErrList.Icon64" DefaultValue="https://outlookplugin.writing-assistant.com/Images/list-64.png" />
<bt:Image id="Contoso.ErrList.Icon80" DefaultValue="https://outlookplugin.writing-assistant.com/Images/list-80.png" />
</bt:Images>
<bt:Urls>
<bt:Url id="Contoso.FunctionFile.Url" DefaultValue="https://outlookplugin.writing-assistant.com/Functions/FunctionFile.html"/>
<bt:Url id="Contoso.Taskpane3.Url" DefaultValue="https://outlookplugin.writing-assistant.com/UI/Accordion.html"/>
<bt:Url id="Contoso.Taskpane.Url" DefaultValue="https://outlookplugin.writing-assistant.com/UI/Login.html" />
<bt:Url id="Contoso.Taskpane4.Url" DefaultValue="https://outlookplugin.writing-assistant.com/UI/Clear.html"/>
<bt:Url id="Contoso.TranslateWord.Url" DefaultValue="https://outlookplugin.writing-assistant.com/UI/Translate.html"/>
<bt:Url id="Contoso.WordDefinition.Url" DefaultValue="https://outlookplugin.writing-assistant.com/UI/GetWordDefinition.html"/>
<bt:Url id="Contoso.Synonyms.Url" DefaultValue="https://outlookplugin.writing-assistant.com/UI/Synonym.html"/>
<bt:Url id="Contoso.MyDictionary.Url" DefaultValue="https://outlookplugin.writing-assistant.com/UI/GetMyDictionary.html"/>
<bt:Url id="Contoso.MyStatistics.Url" DefaultValue="https://outlookplugin.writing-assistant.com/UI/Statistics.html"/>
<bt:Url id="Contoso.Download.Url" DefaultValue="https://outlookplugin.writing-assistant.com/UI/Download.html"/>
<bt:Url id="Contoso.DS.Url" DefaultValue="https://outlookplugin.writing-assistant.com/UI/DefinitionandSynonyms.html"/>
<bt:Url id="Contoso.FAQ.Url" DefaultValue="https://outlookplugin.writing-assistant.com/UI/Login.html"/>
<bt:Url id="Contoso.Tour.Url" DefaultValue="https://outlookplugin.writing-assistant.com/UI/Login.html"/>
<bt:Url id="Contoso.ErrorList.Url" DefaultValue="https://outlookplugin.writing-assistant.com/UI/ErrorList.html"/>
<bt:Url id="Contoso.Taskpane5.Url" DefaultValue="https://outlookplugin.writing-assistant.com/UI/Setting.html"/>
<bt:Url id="Contoso.logout.Url" DefaultValue="https://outlookplugin.writing-assistant.com/UI/Logout.html"/>
</bt:Urls>
<bt:ShortStrings>
<bt:String id="groupLabel" DefaultValue=" "/>
<bt:String id="customTabLabel" DefaultValue="My Add-in Tab"/>
<bt:String id="paneReadButtonLabel" DefaultValue="WritingAssistant"/>
<bt:String id="paneReadSuperTipTitle" DefaultValue="Get all properties"/>
<bt:String id="customTabLabel.TabLabel" DefaultValue="WritingAssistant" />
<bt:String id="Contoso.Check.Label" DefaultValue="Check" />
<bt:String id="Contoso.TranslateWord.Label" DefaultValue="Translate" />
<bt:String id="Contoso.WordDefinition.Label" DefaultValue="Word Definition" />
<bt:String id="Contoso.Synonyms.Label" DefaultValue="Synonyms" />
<bt:String id="Contoso.MyDictionary.Label" DefaultValue="My Dictionary" />
<bt:String id="Contoso.MyStatistics.Label" DefaultValue="Statistics" />
<bt:String id="Contoso.Download.Label" DefaultValue="Download Report" />
<bt:String id="Contoso.DS.Label" DefaultValue="Word Definition" />
<bt:String id="Contoso.FAQ.Label" DefaultValue="FAQs" />
<bt:String id="Contoso.Tour.Label" DefaultValue="Tour" />
<bt:String id="Contoso.Tab1.GroupLabel2" DefaultValue=" " />
<bt:String id="Contoso.TaskpaneButton.Label2" DefaultValue="Check" />
<bt:String id="Contoso.TranslateWord.Label2" DefaultValue="Translate" />
<bt:String id="Contoso.WordDefinition.Label2" DefaultValue="Word Definition" />
<bt:String id="Contoso.Synonyms.Label2" DefaultValue="Synonyms" />
<bt:String id="Contoso.MyDictionary.Label2" DefaultValue="Open My Dictionary" />
<bt:String id="Contoso.MyStatistics.Label2" DefaultValue="Statistics" />
<bt:String id="Contoso.Download.Label2" DefaultValue="Download Report" />
<bt:String id="Contoso.DS.Label2" DefaultValue="DS" />
<bt:String id="Contoso.FAQ.Label2" DefaultValue="Open FAQ" />
<bt:String id="Contoso.Tour.Label2" DefaultValue="Tour" />
<bt:String id="Contoso.Clear.Label" DefaultValue="Clear Highlights" />
<bt:String id="Contoso.Tab1.GroupLabel3" DefaultValue=" " />
<bt:String id="Contoso.logout.Label" DefaultValue="Logout" />
<bt:String id="Contoso.setting.Label" DefaultValue="Settings" />
<bt:String id="Contoso.Tab1.logout" DefaultValue=" " />
<bt:String id="Contoso.Tab1.GroupLabel4" DefaultValue=" " />
<bt:String id="Contoso.ErrorList.Label" DefaultValue="Error List" />
</bt:ShortStrings>
<bt:LongStrings>
<bt:String id="paneReadSuperTipDescription" DefaultValue="Open WritingAssistant for a comprehensive analysis of your writing."/>
<bt:String id="Contoso.Check.Tooltip" DefaultValue="Check your writing for grammatical errors." />
<bt:String id="Contoso.TranslateWord.Tooltip" DefaultValue="Translating English to German? Or Hindi to Urdu? The Translate tool has got it covered. Simply enter a word, select a language of your choice, and get started. " />
<bt:String id="Contoso.WordDefinition.Tooltip" DefaultValue="Having trouble with a certain word? Type it in the dictionary search bar for the exact meaning and a short description." />
<bt:String id="Contoso.Synonyms.Tooltip" DefaultValue="Running out of words? Allow us to suggest more options to express the same idea in different words." />
<bt:String id="Contoso.MyDictionary.Tooltip" DefaultValue="A modifiable collection of your most frequently used words" />
<bt:String id="Contoso.MyStatistics.Tooltip" DefaultValue="View a summary of your performance in each category: Mechanics, Grammar, Content Quality, and Vocabulary." />
<bt:String id="Contoso.Download.Tooltip" DefaultValue="Click to download Report" />
<bt:String id="Contoso.DS.Tooltip" DefaultValue="Running out of words? Allow us to suggest more options to express the same idea in different words." />
<bt:String id="Contoso.FAQ.Tooltip" DefaultValue="Have questions about WritingAssistant? We are happy to help." />
<bt:String id="Contoso.Tour.Tooltip" DefaultValue="Buckle up for a tour of WritingAssistant." />
<bt:String id="Contoso.Clear.Tooltip" DefaultValue="Clear the current errors from your text and the list." />
<bt:String id="Contoso.logout.Tooltip" DefaultValue="Log out of WritingAssistant and return to the home page." />
<bt:String id="Contoso.setting.Tooltip" DefaultValue="Customise error subcategories for an experience tailored to your needs." />
<bt:String id="Contoso.ErrorList.Tooltip" DefaultValue="Click to get Error list " />
</bt:LongStrings>
</Resources>
</VersionOverrides>
</OfficeApp>
I don't understand what is needed to change here, as I 'm a beginner
The manifest provided has several mistakes, probably just inattention to copy&paste inside Resources section. The following Images were missing ...
<bt:Image id="Contoso.Tour.Icon16" DefaultValue="https://outlookplugin.writing-assistant.com/Images/setting-16.png" />
<bt:Image id="Contoso.Tour.Icon32" DefaultValue="https://outlookplugin.writing-assistant.com/Images/setting-32.png" />
<bt:Image id="Contoso.Tour.Icon64" DefaultValue="https://outlookplugin.writing-assistant.com/Images/setting-64.png" />
<bt:Image id="Contoso.Tour.Icon80" DefaultValue="https://outlookplugin.writing-assistant.com/Images/setting-80.png" />
<bt:Image id="Contoso.FAQ.Icon16" DefaultValue="https://outlookplugin.writing-assistant.com/Images/setting-16.png" />
<bt:Image id="Contoso.FAQ.Icon32" DefaultValue="https://outlookplugin.writing-assistant.com/Images/setting-32.png" />
<bt:Image id="Contoso.FAQ.Icon64" DefaultValue="https://outlookplugin.writing-assistant.com/Images/setting-64.png" />
<bt:Image id="Contoso.FAQ.Icon80" DefaultValue="https://outlookplugin.writing-assistant.com/Images/setting-80.png" />
<bt:Image id="Contoso.DS.Icon16" DefaultValue="https://outlookplugin.writing-assistant.com/Images/setting-16.png" />
<bt:Image id="Contoso.DS.Icon32" DefaultValue="https://outlookplugin.writing-assistant.com/Images/setting-32.png" />
<bt:Image id="Contoso.DS.Icon64" DefaultValue="https://outlookplugin.writing-assistant.com/Images/setting-64.png" />
<bt:Image id="Contoso.DS.Icon80" DefaultValue="https://outlookplugin.writing-assistant.com/Images/setting-80.png" />
<bt:Image id="Contoso.MyStatistics.Icon16" DefaultValue="https://outlookplugin.writing-assistant.com/Images/setting-16.png" />
<bt:Image id="Contoso.MyStatistics.Icon32" DefaultValue="https://outlookplugin.writing-assistant.com/Images/setting-32.png" />
<bt:Image id="Contoso.MyStatistics.Icon64" DefaultValue="https://outlookplugin.writing-assistant.com/Images/setting-64.png" />
<bt:Image id="Contoso.MyStatistics.Icon80" DefaultValue="https://outlookplugin.writing-assistant.com/Images/setting-80.png" />
<bt:Image id="Contoso.MyDictionary.Icon80" DefaultValue="https://outlookplugin.writing-assistant.com/Images/my-dictionary-80.png" />
<bt:Image id="Contoso.Download.Icon16" DefaultValue="https://outlookplugin.writing-assistant.com/Images/download-16.png" />
<bt:Image id="Contoso.Download.Icon32" DefaultValue="https://outlookplugin.writing-assistant.com/Images/download-32.png" />
<bt:Image id="Contoso.Download.Icon64" DefaultValue="https://outlookplugin.writing-assistant.com/Images/download-64.png" />
As long as I added those missing entries the add-in was loaded (obviosly you would need to change the icons for those missing IDs) ...

Outlook add - in is greyed out on outlook 2013 Desktop for some users

I am having this issue with outlook add-in. So the add-in is published inside company by IT, and everybody sees it on OWA and it is functioning the way it supposed to.
Now for some users when they open Outlook 2013 Desktop it is greyed out like this:
And when I go to manage add-in on owa this is what I see which seems alright:
I tried to disable other add-ins to see if those are causing conflicts and that did not work. Here is the manifest file: I deleted some lines that are company related and modified url's but the rest is the same.
<FormSettings>
<!--
<Form xsi:type="ItemRead">
<DesktopSettings>
<SourceLocation DefaultValue="~remoteAppUrl/AppRead/Home/Home.html"/>
<RequestedHeight>250</RequestedHeight>
</DesktopSettings>
</Form>
-->
<Form xsi:type="ItemEdit">
<DesktopSettings>
<SourceLocation DefaultValue="~remoteAppUrl/MailForms/AppCompose/1.0.0.3/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="Appointment" FormType="Edit" />
<!--
<Rule xsi:type="ItemIs" ItemType="Message" FormType="Read" />
<Rule xsi:type="ItemIs" ItemType="Appointment" FormType="Read" />
-->
</Rule>
<DisableEntityHighlighting>false</DisableEntityHighlighting>
<VersionOverrides xmlns="http://schemas.microsoft.com/office/mailappversionoverrides" xsi:type="VersionOverridesV1_0">
<Requirements>
<bt:Sets DefaultMinVersion="1.4">
<bt:Set Name="Mailbox" />
</bt:Sets>
</Requirements>
<DesktopFormFactor>
<!-- Location of the Functions that UI-less buttons can trigger (ExecuteFunction Actions). -->
<FunctionFile resid="functionFile" />
<!-- Message Read -->
<!--<ExtensionPoint xsi:type="MessageReadCommandSurface">
--><!-- Use the default tab of the ExtensionPoint or create your own with <CustomTab id="myTab"> --><!--
<OfficeTab id="TabDefault">
--><!-- Up to 6 Groups added per Tab --><!--
<Group id="msgReadGroup">
<Label resid="groupLabel" />
--><!-- Launch the add-in : task pane button --><!--
<Control xsi:type="Button" id="msgReadOpenPaneButton">
<Label resid="paneReadButtonLabel" />
<Supertip>
<Title resid="paneReadSuperTipTitle" />
<Description resid="paneReadSuperTipDescription" />
</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="messageReadTaskPaneUrl" />
</Action>
</Control>
--><!-- Go to http://aka.ms/ButtonCommands to learn how to add more Controls: ExecuteFunction and Menu --><!--
</Group>
</OfficeTab>
</ExtensionPoint>-->
<!-- Message Compose -->
<ExtensionPoint xsi:type="MessageComposeCommandSurface">
<!-- Use the default tab of the ExtensionPoint or create your own with <CustomTab id="myTab"> -->
<OfficeTab id="TabDefault">
<!-- Up to 6 Groups added per Tab -->
<Group id="msgReadGroup">
<Label resid="groupLabel" />
<!-- Launch the add-in : task pane button -->
<Control xsi:type="Button" id="msgReadOpenPaneButton">
<Label resid="paneReadButtonLabel" />
<Supertip>
<Title resid="paneReadSuperTipTitle" />
<Description resid="paneReadSuperTipDescription" />
</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="messageComposeTaskPaneUrl" />
</Action>
</Control>
<!-- Go to http://aka.ms/ButtonCommands to learn how to add more Controls: ExecuteFunction and Menu -->
</Group>
</OfficeTab>
</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="icon16" DefaultValue="~remoteAppUrl/MailForms/Images/icon16.png"/>
<bt:Image id="icon32" DefaultValue="~remoteAppUrl/MailForms/Images/icon32.png"/>
<bt:Image id="icon80" DefaultValue="~remoteAppUrl/MailForms/Images/icon80.png"/>
</bt:Images>
<bt:Urls>
<bt:Url id="functionFile" DefaultValue=" ~remoteAppUrl/MailForms/Functions/FunctionFile.html"/>
<!--<bt:Url id="messageReadTaskPaneUrl" DefaultValue="~remoteAppUrl/AppRead/Home/Home.html"/>-->
<bt:Url id="messageComposeTaskPaneUrl" DefaultValue="~remoteAppUrl/MailForms/AppCompose/1.0.0.3/Home/Home.html"/>
</bt:Urls>
<bt:ShortStrings>
<bt:String id="groupLabel" DefaultValue="My Add-in Group"/>
<bt:String id="customTabLabel" DefaultValue="My Add-in Tab"/>
<bt:String id="paneReadButtonLabel" DefaultValue="Messageware Mail Forms"/>
<bt:String id="paneReadSuperTipTitle" DefaultValue="Get all properties"/>
</bt:ShortStrings>
<bt:LongStrings>
<bt:String id="paneReadSuperTipDescription" DefaultValue="Opens a pane displaying all available properties. This is an example of a button that opens a task pane."/>
</bt:LongStrings>
</Resources>
</VersionOverrides>
</OfficeApp>
Any ideas?
Ok - so your DefaultMinVersion is 1.4:
<bt:Sets DefaultMinVersion="1.4">
Per the Requirement Set documentation, requirement set 1.4 was added to Outlook 2013 via kb 3118280, which is version 15.0.4859.1000. So you should check the version of Outlook 2013 you're running. Any client which is out of date would offer requirement set 1.3 or lower and would show the icon as greyed out.
Your comment about Salesforce reminds me of something I just debugged. The version of Outlook itself doesn't matter for requirements sets. It's the version of osf.dll and osfshared.dll that matter. So quite likely that's out of date. Try the latest OSF update and see if that gets Salesforce working.
Bug I filed on the requirements sets documentation: https://github.com/OfficeDev/office-js-docs/issues/1461

Outlook Add-In Icon Not Showing

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>

Resources