How to create new tab with buttons in word 2016 - ms-word

I am new to office 365. I have developed one taskpane add in (testaddin) for word 2016 using javacript api. In word 2016, I want to create new tab (testtab) and add a button to it . On clicking that button, i need to display my testaddin in taskpane. I have got sample manifest file here. https://github.com/OfficeDev/Office-Add-in-Commands-Samples/tree/master/Word. After downloading files where to place the manifest file.
I already have one shared directory which contains my testaddin manifest file and its loading in taskpane.
Any help will be really appreciated.

The manifest you refer from GitHub is a runnable one. We can modify it base on our requirement and deploy it into the share folder too. For example, to create a new tab on the ribbon instead of using the build-in tab, we need to use the “CustomTab” instead of “OfficeTab”.
Here is the detail steps:
Modify the manifeste like below(you need to modify the source
location and images based on your business requirement)
<?xml version="1.0" encoding="UTF-8"?>
<OfficeApp xmlns="http://schemas.microsoft.com/office/appforoffice/1.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bt="http://schemas.microsoft.com/office/officeappbasictypes/1.0" xmlns:ov="http://schemas.microsoft.com/office/taskpaneappversionoverrides" xsi:type="TaskPaneApp">
<!-- BeginBasicSettings: Add-in metadata, used for all versions of Office unless override provided -->
<!--IMPORTANT! Id must be unique for your add-in, if you clone this manifest ensure that you change this id to your own GUID -->
<Id>651a32a9-ab8a-4579-ac9f-df1a11a64e54</Id>
<!--Version. Updates from the store only get triggered if there is a version change -->
<Version>1.0.0.0</Version>
<ProviderName>Contoso</ProviderName>
<DefaultLocale>en-US</DefaultLocale>
<!-- The display name of your add-in. Used on the store and various placed of the Office UI such as the add-ins dialog -->
<DisplayName DefaultValue="Citations" />
<Description DefaultValue="Citations Example"/>
<!--Icon for your add-in. Used on installation screens and the add-ins dialog -->
<IconUrl DefaultValue="https://i.imgur.com/LltG56v.png" />
<!--Todo: Add requirement sets and remove commenting of high res icon -->
<!--The HighResolutionIcon element is commented because it is valid only for 1.1 (or above) versions of the manifest.
To use this property, convert this manifest to version 1.1 by adding an API set in the Activation tab of the manifest editor.-->
<!--<HighResolutionIconUrl DefaultValue="https://i.imgur.com/MPuvMiq.png" />-->
<!--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>
<!--EndBasicSettings-->
<!--BeginTaskpaneMode integration. Office 2013 and any client that doesn't understand commands will use this section.
This section will also be used if there are no VersionOverrides -->
<Hosts>
<Host Name="Document" />
</Hosts>
<DefaultSettings>
<SourceLocation DefaultValue="https://addinwithfabric.azurewebsites.net/index.html" />
</DefaultSettings>
<!--EndTaskpaneMode integration -->
<Permissions>ReadWriteDocument</Permissions>
<!--BeginAddinCommandsMode integration-->
<VersionOverrides xmlns="http://schemas.microsoft.com/office/taskpaneappversionoverrides" xsi:type="VersionOverridesV1_0">
<!-- Optional, override the description of the Add-in -->
<Description resid="residToolTip" />
<!--Required, hosts node. Each host can have a different set of commands -->
<Hosts>
<!--Specific host. Workbook=Excel, Document=Word, Presentation=PowerPoint -->
<Host xsi:type="Document">
<!-- Form factor. Currenly only DesktopFormFactor is supported. We will add TabletFormFactor and PhoneFormFactor in the future-->
<DesktopFormFactor>
<!--GetStarted information used on the callout that appears when installing the add-in.
Ensure you have build 16.0.6769 or above for GetStarted section to work-->
<GetStarted>
<!--Title of the Getting Started callout. resid points to a ShortString resource -->
<Title resid="Contoso.GetStarted.Title"/>
<!--Description of the Getting Started callout. resid points to a LongString resource -->
<Description resid="Contoso.GetStarted.Description"/>
<!--Not used right now but you need to provide a valid resource. We will add code in the future to consume this URL.
resid points to a Url resource -->
<LearnMoreUrl resid="Contoso.GetStarted.LearnMoreUrl"/>
</GetStarted>
<!--Function file is an html page that includes the javascript where functions for ExecuteAction will be called.
Think of the FunctionFile as the "code behind" ExecuteFunction
This sample doesn't use this file, just adding the element for reference-->
<!--PrimaryCommandSurface==Main Office Ribbon-->
<ExtensionPoint xsi:type="PrimaryCommandSurface">
<!--Use OfficeTab to extend an existing Tab. Use CustomTab to create a new tab -->
<!-- Documentation includes all the IDs currently tested to work -->
<CustomTab id="Contoso.Citations">
<!--Group. Ensure you provide a unique id. Recommendation for any IDs is to namespace using your companyname-->
<Group id="Contoso.Citations.Group1Id1">
<!--Label for your group. resid must point to a ShortString resource -->
<Label resid="residLabel4" />
<!--Icons. Required sizes 16,31,80, optional 20, 24, 40, 48, 64. Strongly recommended to provide all sizes for great UX -->
<!--Use PNG icons and remember that all URLs on the resources section must use HTTPS -->
<Icon>
<bt:Image size="16" resid="icon1_16x16" />
<bt:Image size="32" resid="icon1_32x32" />
<bt:Image size="80" resid="icon1_80x80" />
</Icon>
<!--Control. It can be of type "Button" or "Menu" -->
<Control xsi:type="Button" id="Button3Id1">
<!--Label for your button. resid must point to a ShortString resource -->
<Label resid="residLabel3" />
<Supertip>
<!--ToolTip title. resid must point to a ShortString resource -->
<Title resid="residLabel" />
<!--ToolTip description. resid must point to a LongString resource -->
<Description resid="residToolTip" />
</Supertip>
<Icon>
<bt:Image size="16" resid="icon1_16x16" />
<bt:Image size="32" resid="icon3_32x32" />
<bt:Image size="80" resid="icon1_80x80" />
</Icon>
<!--This is what happens when the command is triggered (E.g. click on the Ribbon). Supported actions are ExecuteFuncion or ShowTaskpane-->
<Action xsi:type="ShowTaskpane">
<!--Provide a url resource id for the location that will be displayed on the taskpane -->
<SourceLocation resid="residUnitConverterUrl" />
</Action>
</Control>
</Group>
<Label resid="residLabel4" />
</CustomTab>
</ExtensionPoint>
</DesktopFormFactor>
</Host>
</Hosts>
<Resources>
<bt:Images>
<bt:Image id="icon1_16x16" DefaultValue="https://i.imgur.com/xV3upTT.png">
<bt:Override Locale="ja-jp" Value="https://i.imgur.com/xV3upTT.png" />
</bt:Image>
<bt:Image id="icon1_32x32" DefaultValue="https://i.imgur.com/kBw0iKX.png">
<bt:Override Locale="ja-jp" Value="https://i.imgur.com/kBw0iKX.png" />
</bt:Image>
<bt:Image id="icon1_80x80" DefaultValue="https://i.imgur.com/xV3upTT.png">
<bt:Override Locale="ja-jp" Value="https://i.imgur.com/xV3upTT.png" />
</bt:Image>
<bt:Image id="icon2_32x32" DefaultValue="https://i.imgur.com/LltG56v.png">
</bt:Image>
<bt:Image id="icon3_32x32" DefaultValue="https://i.imgur.com/6WiJTG0.png">
</bt:Image>
</bt:Images>
<bt:Urls>
<bt:Url id="residUnitConverterUrl" DefaultValue="https://addinwithfabric.azurewebsites.net/index.html">
</bt:Url>
<!--LearnMore URL currently not used -->
<bt:Url id="Contoso.GetStarted.LearnMoreUrl" DefaultValue="https://odsample.azurewebsites.net/Pages/GetStarted.html">
</bt:Url>
</bt:Urls>
<bt:ShortStrings>
<bt:String id="residLabel" DefaultValue="Get Data">
<bt:Override Locale="ja-jp" Value="JA-JP Multiple Buttons" />
</bt:String>
<bt:String id="residLabel2" DefaultValue="Save Data">
<bt:Override Locale="ja-jp" Value="JA-JP Multiple Buttons" />
</bt:String>
<bt:String id="residLabel3" DefaultValue="Search Citation">
<bt:Override Locale="ja-jp" Value="JA-JP Multiple Buttons" />
</bt:String>
<bt:String id="residLabel4" DefaultValue="Web Citations">
<bt:Override Locale="ja-jp" Value="JA-JP Multiple Buttons" />
</bt:String>
<bt:String id="residLabel5" DefaultValue="Another Command">
<bt:Override Locale="ja-jp" Value="JA-JP Multiple Buttons" />
</bt:String>
<bt:String id="Contoso.GetStarted.Title" DefaultValue="Citation Sample Loaded Successfully">
<bt:Override Locale="ja-jp" Value="JA-JP Get Started Title" />
</bt:String>
</bt:ShortStrings>
<bt:LongStrings>
<bt:String id="residToolTip" DefaultValue="Multiple Buttons Tooltip">
<bt:Override Locale="ja-jp" Value="JA-JP Multiple Buttons Tooltip" />
</bt:String>
<bt:String id="Contoso.GetStarted.Description" DefaultValue="Get going by opening the REFERENCES tab on the Ribbon then click WEB CITATIONS>SEARCH CITATION button">
<bt:Override Locale="ja-jp" Value="JA-JP Get Started Title" />
</bt:String>
</bt:LongStrings>
</Resources>
</VersionOverrides>
</OfficeApp>
Copy the manifest to the share folder which you have configure as
“Trusted Catalog” for the Word.
Insert the apps for Office from the share folder, you are able to
see the new tab “Web Citations” on the
ribbon

please make sure to follow the documentation. The manifest you downloaded should not require any changes, just to test it make sure to follow the links below:
Add-In Commands intro http://dev.office.com/docs/add-ins/design/add-in-commands
Check out the samples: https://github.com/OfficeDev/Office-Add-in-Commands-Samples/blob/master/README.md
Test it using a network share: https://dev.office.com/docs/add-ins/publish/create-a-network-shared-folder-catalog-for-task-pane-and-content-add-ins
If you follow these documents you should be able to test. Please let me know if the information on those pages is not useful, or how to improve it!..
thanks!

Related

How to enable Add-Ins in Windows 10 MS Word 365?

I am creating add-ins for MS Word for the web as well as offline versions.
When I try to publish it into an office store add-ins it works fine on Word for web and for offline.
When I try to add that same "Publish.xml" file in a Word add-ins it doesn't work for me.
For reference, I attached my "Publish.xml" file here.
Project Type: Word Web Add-in
Target Framework: .Net Framework 4.7.2
Please look into this and give me a response if anyone has an idea on that.
Publish.xml
<?xml version="1.0" encoding="utf-8"?>
<!--Published:70EDFC97-B41D-43C5-B751-7C00AD999804-->
<OfficeApp xsi:type="TaskPaneApp" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/office/appforoffice/1.1" xmlns:bt="http://schemas.microsoft.com/office/officeappbasictypes/1.0" xmlns:ov="http://schemas.microsoft.com/office/taskpaneappversionoverrides">
<Id>f5456f09-dc5d-4154-b7ef-3594dce33642</Id>
<Version>1.0.0.0</Version>
<ProviderName>Deep</ProviderName>
<DefaultLocale>en-US</DefaultLocale>
<DisplayName DefaultValue="My Office Add-in" />
<Description DefaultValue="A task pane add-in for Word" />
<IconUrl DefaultValue="https://mydomain.azurewebsites.net/Images/Button32x32.png" />
<SupportUrl DefaultValue="MyWebSite" />
<AppDomains>
<AppDomain>AppDomain1</AppDomain>
<AppDomain>AppDomain2</AppDomain>
<AppDomain>AppDomain3</AppDomain>
</AppDomains>
<Hosts>
<Host Name="Document" />
</Hosts>
<DefaultSettings>
<SourceLocation DefaultValue="https://mydomain.azurewebsites.net/Home.html" />
</DefaultSettings>
<Permissions>ReadWriteDocument</Permissions>
<VersionOverrides xmlns="http://schemas.microsoft.com/office/taskpaneappversionoverrides" xsi:type="VersionOverridesV1_0">
<Hosts>
<Host xsi:type="Document">
<DesktopFormFactor>
<GetStarted>
<Title resid="Contoso.GetStarted.Title" />
<Description resid="Contoso.GetStarted.Description" />
<LearnMoreUrl resid="Contoso.GetStarted.LearnMoreUrl" />
</GetStarted>
<ExtensionPoint xsi:type="PrimaryCommandSurface">
<OfficeTab id="TabHome">
<Group id="Contoso.Group1">
<Label resid="Contoso.Group1Label" />
<Icon>
<bt:Image size="16" resid="Contoso.tpicon_16x16" />
<bt:Image size="32" resid="Contoso.tpicon_32x32" />
<bt:Image size="80" resid="Contoso.tpicon_80x80" />
</Icon>
<Control xsi:type="Button" id="Contoso.TaskpaneButton">
<Label resid="Contoso.TaskpaneButton.Label" />
<Supertip>
<Title resid="Contoso.TaskpaneButton.Label" />
<Description resid="Contoso.TaskpaneButton.Tooltip" />
</Supertip>
<Icon>
<bt:Image size="16" resid="Contoso.tpicon_16x16" />
<bt:Image size="32" resid="Contoso.tpicon_32x32" />
<bt:Image size="80" resid="Contoso.tpicon_80x80" />
</Icon>
<Action xsi:type="ShowTaskpane">
<TaskpaneId>ButtonId1</TaskpaneId>
<SourceLocation resid="Contoso.Taskpane.Url" />
</Action>
</Control>
</Group>
</OfficeTab>
</ExtensionPoint>
</DesktopFormFactor>
</Host>
</Hosts>
<Resources>
<bt:Images>
<bt:Image id="Contoso.tpicon_16x16" DefaultValue="https://mydomain.azurewebsites.net/Images/Button16x16.png" />
<bt:Image id="Contoso.tpicon_32x32" DefaultValue="https://mydomain.azurewebsites.net/Images/Button32x32.png" />
<bt:Image id="Contoso.tpicon_80x80" DefaultValue="https://mydomain.azurewebsites.net/Images/Button80x80.png" />
</bt:Images>
<bt:Urls>
<bt:Url id="Contoso.Taskpane.Url" DefaultValue="https://mydomain.azurewebsites.net/Home.html" />
<bt:Url id="Contoso.GetStarted.LearnMoreUrl" DefaultValue="https://go.microsoft.com/fwlink/?LinkId=276812" />
</bt:Urls>
<bt:ShortStrings>
<bt:String id="Contoso.TaskpaneButton.Label" DefaultValue="Show Taskpane" />
<bt:String id="Contoso.Group1Label" DefaultValue="Commands Group" />
<bt:String id="Contoso.GetStarted.Title" DefaultValue="Get started with your sample add-in!" />
</bt:ShortStrings>
<bt:LongStrings>
<bt:String id="Contoso.TaskpaneButton.Tooltip" DefaultValue="Click to Show a Taskpane" />
<bt:String id="Contoso.GetStarted.Description" DefaultValue="Your sample add-in loaded succesfully. Go to the HOME tab and click the 'Show Taskpane' button to get started." />
</bt:LongStrings>
</Resources>
</VersionOverrides>
</OfficeApp>

Why does Microsoft's helloWorld add-in example trigger 20 macro warning message boxes during a native compare operation?

Follow this code example causes problems with MSWord's native document compare functionality when group policy has disabled macros:
https://learn.microsoft.com/en-us/office/dev/add-ins/design/using-office-ui-fabric-react
Why is MSWord identifying a basic office.js add-in as a macro? There are no macros in this helloWorld example code? Security conscious clients will not wish to lower their security policy in-order to use the document compare function. Is there another way to suppress these annoying message boxes, as asking the end-user to click [OK] twenty times on every document compare action is an awful user experience.
Note: The macros settings in the Trust Center do nothing to prevent these message boxes from showing when the group policy is in-place. Its not entirely clear what group policy setting is causing this, but I suspect its setting "Block macros from running in Office files from the Internet".
What is not clear is why the Wikipedia add-in from the app source store does not interfere with the document compare whereas the helloWorld example above does. There must be a way of trusting office.js add-ins to suppress this warning without having to compromise the corporate security strategy?
Environment:
Microsoft Word for Office 365 MSO (16.0.12527.20612) 32 bit
Windows 10 Enterprise, Version 1809
Visual Studio Code version 1.48
Node.js v12.14.1
Repo steps:
Follow the article detailed above for the helloWorld example
Apply a strict macro policy via Group Policy Management (exact policy setting is unknown. I am trying to acquire this from our IT Support to precisely identify which setting is triggering these macro warnings - and 'no' its not the trust center macro settings, as this settings do nothing to reveal/suppress this macro warning)
With MSWord open (irrespective of whether the helloWorld add-in is loaded in the sidebar or not, its mere association to MSWord is enough) attempt to do a document compare operation from the [Review] tab.
Removing the corporate security Group Policy from my laptop fixes the problem. Re-instating the group policy re-creates the problem. It's just not clear which setting in this policy is causing the problem. HOWEVER the Wikipedia add-in from the app source store is somehow trusted regardless of this Group Policy. As a minimum requirement, we need to provide clients with details of what the security constraint/setting is. Ideally, I'd like to know what it is that the wikipedia add-in has done to become trusted in such a way that those warnings are suppress irrespective of the Group Policy setting
Update
Adding the SSL certificates for the add-in to the Trusted Publishers store made no difference.
I tried a number of other apps found in the app source store with mixed results:
AppName (Publisher) : Results
Wikipedia (Microsoft) : Compare works correctly
Pickit (www.pickit.com) : Compare interrupted by 20 macro warning message boxes
ScriptLab (Microsoft) : Compare interrupted by 20 macro warning message boxes
Microsoft Dynamics (Microsoft) : Compare works correctly
The publishing location nor the publisher seems to influence the outcome of the compare functionality
Update
Here is an export of the group policy that relates to MSWord macros:
Interesting Update
It would appear that there is a unexpected interaction between the Group Policy details above, the document compare operation AND the ExtensionPoint xml element in the manifest.xml file. If I remove the extensionPoint element then the macro warning no longer shows during the document compare operation. However, removing this element means that we no longer have an icon to load the application with - forcing the end-user to re-add the add-in for every document, which isn't really a solution. See manifest.xml file below:
<?xml version="1.0" encoding="UTF-8"?>
<OfficeApp
xmlns="http://schemas.microsoft.com/office/appforoffice/1.1"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:bt="http://schemas.microsoft.com/office/officeappbasictypes/1.0"
xmlns:ov="http://schemas.microsoft.com/office/taskpaneappversionoverrides"
xsi:type="TaskPaneApp">
<!-- 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>69de862e-09ee-4ec4-85a4-f230fa10cbc0</Id>
<!--Version. Updates from the store only get triggered if there is a version change. -->
<Version>1.0.0.0</Version>
<ProviderName>CompanyX AddIn</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="CompanyX AddIn" />
<Description DefaultValue="CompanyX AddIn for Office 365" />
<!-- Icon for your add-in. Used on installation screens and the add-ins dialog. -->
<IconUrl DefaultValue="https://companyX.com/images/ds_AddIn_80.png" />
<HighResolutionIconUrl DefaultValue="https://companyX.com/images/ds_AddIn_80.png"/>
<!--If you plan to submit this add-in to the Office Store, uncomment the SupportUrl element below-->
<SupportUrl DefaultValue="https://companyX.com/support.html" />
<!--End Basic Settings. -->
<!--Begin TaskPane Mode integration. This section is used if there are no VersionOverrides or if the Office client version does not support add-in commands. -->
<Hosts>
<Host Name="Document" />
</Hosts>
<DefaultSettings>
<SourceLocation DefaultValue="https://companyX.com/index.html" />
</DefaultSettings>
<!-- End TaskPane Mode integration. -->
<Permissions>ReadWriteDocument</Permissions>
<VersionOverrides xmlns="http://schemas.microsoft.com/office/taskpaneappversionoverrides" xsi:type="VersionOverridesV1_0">
<!-- The Hosts node is required. -->
<Hosts>
<!-- Each host can have a different set of commands. -->
<!-- Excel host is Workbook, Word host is Document, and PowerPoint host is Presentation. -->
<!-- Make sure the hosts you override match the hosts declared in the top section of the manifest. -->
<Host xsi:type="Document">
<!-- Form factor. Currently only DesktopFormFactor is supported. -->
<DesktopFormFactor>
<!--"This code enables a customizable message to be displayed when the add-in is loaded successfully upon individual install."-->
<GetStarted>
<!-- Title of the Getting Started callout. resid points to a ShortString resource -->
<Title resid="CompanyX.GetStarted.Title"/>
<!-- Description of the Getting Started callout. resid points to a LongString resource -->
<Description resid="CompanyX.GetStarted.Description"/>
<!-- Point to a url resource which details how the add-in should be used. -->
<LearnMoreUrl resid="CompanyX.GetStarted.LearnMoreUrl"/>
</GetStarted>
<!-- Function file is a HTML page that includes the JavaScript where functions for ExecuteAction will be called.
Think of the FunctionFile as the code behind ExecuteFunction. -->
<FunctionFile resid="CompanyX.DesktopFunctionFile.Url" />
<!-- PrimaryCommandSurface is the main Office Ribbon. -->
<ExtensionPoint xsi:type="PrimaryCommandSurface">
<!-- Use OfficeTab to extend an existing Tab. Use CustomTab to create a new tab. -->
<OfficeTab id="TabHome">
<!-- Ensure you provide a unique id for the group. Recommendation for any IDs is to namespace using your company name. -->
<Group id="CompanyX.Group1">
<!-- Label for your group. resid must point to a ShortString resource. -->
<Label resid="CompanyX.Group1Label" />
<!-- Icons. Required sizes 16,32,80, optional 20, 24, 40, 48, 64. Strongly recommended to provide all sizes for great UX. -->
<!-- Use PNG icons. All URLs on the resources section must use HTTPS. -->
<Icon>
<bt:Image size="16" resid="CompanyX.tpicon_16x16" />
<bt:Image size="32" resid="CompanyX.tpicon_32x32" />
<bt:Image size="80" resid="CompanyX.tpicon_80x80" />
</Icon>
<!-- Control. It can be of type "Button" or "Menu". -->
<Control xsi:type="Button" id="CompanyX.TaskpaneButton">
<Label resid="CompanyX.TaskpaneButton.Label" />
<Supertip>
<!-- ToolTip title. resid must point to a ShortString resource. -->
<Title resid="CompanyX.TaskpaneButton.Label" />
<!-- ToolTip description. resid must point to a LongString resource. -->
<Description resid="CompanyX.TaskpaneButton.Tooltip" />
</Supertip>
<Icon>
<bt:Image size="16" resid="CompanyX.tpicon_16x16" />
<bt:Image size="32" resid="CompanyX.tpicon_32x32" />
<bt:Image size="80" resid="CompanyX.tpicon_80x80" />
</Icon>
<!-- This is what happens when the command is triggered (E.g. click on the Ribbon). Supported actions are ExecuteFunction or ShowTaskpane. -->
<Action xsi:type="ShowTaskpane">
<TaskpaneId>ButtonId1</TaskpaneId>
<!-- Provide a url resource id for the location that will be displayed on the task pane. -->
<SourceLocation resid="CompanyX.Taskpane.Url" />
</Action>
</Control>
</Group>
</OfficeTab>
</ExtensionPoint>
</DesktopFormFactor>
</Host>
</Hosts>
<!-- You can use resources across hosts and form factors. -->
<Resources>
<bt:Images>
<bt:Image id="CompanyX.tpicon_16x16" DefaultValue="https://companyX.com/images/ds_AddIn_16.png" />
<bt:Image id="CompanyX.tpicon_32x32" DefaultValue="https://companyX.com/images/ds_AddIn_32.png" />
<bt:Image id="CompanyX.tpicon_80x80" DefaultValue="https://companyX.com/images/ds_AddIn_80.png" />
</bt:Images>
<bt:Urls>
<bt:Url id="CompanyX.Taskpane.Url" DefaultValue="https://companyX.com/index.html" />
<bt:Url id="CompanyX.GetStarted.LearnMoreUrl" DefaultValue="https://go.microsoft.com/fwlink/?LinkId=276812" />
<bt:Url id="CompanyX.DesktopFunctionFile.Url" DefaultValue="https://companyX.com/function-file/function-file.html" />
</bt:Urls>
<!-- ShortStrings max characters==125. -->
<bt:ShortStrings>
<bt:String id="CompanyX.TaskpaneButton.Label" DefaultValue="CompanyX AddIn" />
<bt:String id="CompanyX.Group1Label" DefaultValue="Contract Review" />
<bt:String id="CompanyX.GetStarted.Title" DefaultValue="CompanyX AddIn for Office 365." />
</bt:ShortStrings>
<!-- LongStrings max characters==250. -->
<bt:LongStrings>
<bt:String id="CompanyX.TaskpaneButton.Tooltip" DefaultValue="Start CompanyX AddIn" />
<bt:String id="CompanyX.GetStarted.Description" DefaultValue="CompanyX AddIn add-in loaded successfully. Go to the HOME tab and click the 'CompanyX AddIn' button to get started." />
</bt:LongStrings>
</Resources>
</VersionOverrides>
<!-- End Add-in Commands Mode integration. -->
</OfficeApp>
After evaluating numerous add-ins downloaded from the app store (from various different publishers, including Microsoft) it is clear that the problem is related to the ribbon.
Add-ins that do not use the ribbon do not present the macro warning. Add-ins that do use the ribbon (custom or home ribbon) that use the security Group Policy setup above are deluged with macro warnings during the document compare operation.
Clients will of-course be unwilling to reduce their security setup to suppress this series of warning message boxes. Therefore the only solution is to alter the add-in's manifest.xml so that it does not use the ribbon.

Office add-in info doesn't show on task pane for Windows 10 but works on mac

I've got an MS Word Office.js add-in with some task panes. On the top right of the task pane there is a drop down menu to get info about the add in.
It behaves as expected for Word 2016 on Mac:
But for Word 2016 on Windows 10, my logo is missing and the "Get Support" link doesn't work:
:
I suspect it is related to my manifest so I'm copying relevant portions below. Any idea how to fix this for Windows 10?
Things I've tried:
Clearing the cache in the Wef folder
Enabling logs in the registry (nothing logged)
Using Edge Dev Tools. Here is the console:
"info" is the HTML source (see here). Looks to not be an actual error.
=====
<?xml version="1.0" encoding="UTF-8"?>
<OfficeApp xmlns="http://schemas.microsoft.com/office/appforoffice/1.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:bt="http://schemas.microsoft.com/office/officeappbasictypes/1.0" xmlns:ov="http://schemas.microsoft.com/office/taskpaneappversionoverrides" xsi:type="TaskPaneApp">
<Id>...</Id>
<Version>1.0.0.0</Version>
<ProviderName>Patent Bots</ProviderName>
<DefaultLocale>en-US</DefaultLocale>
<DisplayName DefaultValue="Patent Bots GCP"/>
<Description DefaultValue="Patent Bots automated patent proofreading."/>
<IconUrl DefaultValue="https://gcp.patentbots.com/static/word-add-in/bot_head_32.png"/>
<SupportUrl DefaultValue="https://gcp.patentbots.com/word-add-in/redirect/help"/>
<AppDomains>
<AppDomain>https://gcp.patentbots.com</AppDomain>
</AppDomains>
<Hosts>
<Host Name="Document"/>
</Hosts>
<Requirements>
<Sets DefaultMinVersion="1.1">
<Set Name="File" MinVersion="1.1"/>
<Set Name="AddinCommands" MinVersion="1.1"/>
</Sets>
</Requirements>
<DefaultSettings>
<SourceLocation DefaultValue="https://gcp.patentbots.com/word-add-in"/>
</DefaultSettings>
<Permissions>ReadAllDocument</Permissions>
<VersionOverrides xmlns="http://schemas.microsoft.com/office/taskpaneappversionoverrides" xsi:type="VersionOverridesV1_0">
<Hosts>
<Host xsi:type="Document">
<DesktopFormFactor>
<ExtensionPoint xsi:type="PrimaryCommandSurface">
<CustomTab id="PatentBotsTab">
<Group id="PB.Group">
<Label resid="PB.Group.Label"/>
<Icon>
<bt:Image size="16" resid="PB.bot_16"/>
<bt:Image size="32" resid="PB.bot_32"/>
<bt:Image size="80" resid="PB.bot_80"/>
</Icon>
<Control xsi:type="Button" id="PB.Info">
<Label resid="PB.Info.Label"/>
<Supertip>
<Title resid="PB.Info.Title"/>
<Description resid="PB.Info.Desc"/>
</Supertip>
<Icon>
<bt:Image size="16" resid="PB.bot_16"/>
<bt:Image size="32" resid="PB.bot_32"/>
<bt:Image size="80" resid="PB.bot_80"/>
</Icon>
<Action xsi:type="ShowTaskpane">
<TaskpaneId>PB.Info</TaskpaneId>
<SourceLocation resid="PB.Info.Url"/>
</Action>
</Control>
</Group>
<Label resid="PB.Tab.Label"/>
</CustomTab>
</ExtensionPoint>
</DesktopFormFactor>
</Host>
</Hosts>
<Resources>
<bt:Images>
<bt:Image id="PB.bot_16" DefaultValue="https://gcp.patentbots.com/static/word-add-in/bot_head_16.png"/>
<bt:Image id="PB.bot_32" DefaultValue="https://gcp.patentbots.com/static/word-add-in/bot_head_32.png"/>
<bt:Image id="PB.bot_80" DefaultValue="https://gcp.patentbots.com/static/word-add-in/bot_head_80.png"/>
</bt:Images>
<bt:Urls>
<bt:Url id="PB.Info.Url" DefaultValue="https://gcp.patentbots.com/word-add-in/info"/>
</bt:Urls>
<bt:ShortStrings>
<bt:String id="PB.Group.Label" DefaultValue="Patent Bots Add In"/>
<bt:String id="PB.Tab.Label" DefaultValue="Patent Bots GCP"/>
<bt:String id="PB.Info.Label" DefaultValue="Patent Bots"/>
<bt:String id="PB.Info.Title" DefaultValue="Information about Patent Bots"/>
</bt:ShortStrings>
<bt:LongStrings>
<bt:String id="PB.Info.Desc" DefaultValue="Information about Patent Bots"/>
</bt:LongStrings>
</Resources>
</VersionOverrides>
</OfficeApp>
I have played with your manifest
I am on windows 10 Version 1903.
Step 1: Once you loaded your add-in. Hit Ctrl + F5 on your keyboard to clear the cache on IE. To avoid caching in future add output hashing on your build.
Step 2: Can you try the following manifest.
<?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:ov="http://schemas.microsoft.com/office/taskpaneappversionoverrides" xsi:type="TaskPaneApp">
<Id>7748d238-f27e-5ge1-ab09-5967d67668bg</Id>
<Version>1.0.0.0</Version>
<ProviderName>Patent Bots</ProviderName>
<DefaultLocale>en-US</DefaultLocale>
<DisplayName DefaultValue="Patent Bots GCP"/>
<Description DefaultValue="Patent Bots automated patent proofreading."/>
<IconUrl DefaultValue="https://gcp.patentbots.com/static/word-add-in/bot_head_32.png"/>
<HighResolutionIconUrl DefaultValue="https://gcp.patentbots.com/static/word-add-in/bot_head_32.png"/>
<SupportUrl DefaultValue="https://gcp.patentbots.com/word-add-in/redirect/help"/>
<AppDomains>
<AppDomain>https://gcp.patentbots.com</AppDomain>
</AppDomains>
<Hosts>
<Host Name="Document"/>
</Hosts>
<Requirements>
<Sets DefaultMinVersion="1.1">
<Set Name="File" MinVersion="1.1"/>
<Set Name="AddinCommands" MinVersion="1.1"/>
</Sets>
</Requirements>
<DefaultSettings>
<SourceLocation DefaultValue="https://gcp.patentbots.com/word-add-in"/>
</DefaultSettings>
<Permissions>ReadAllDocument</Permissions>
<VersionOverrides xmlns="http://schemas.microsoft.com/office/taskpaneappversionoverrides" xsi:type="VersionOverridesV1_0">
<Hosts>
<Host xsi:type="Document">
<DesktopFormFactor>
<ExtensionPoint xsi:type="PrimaryCommandSurface">
<CustomTab id="PatentBotsTab">
<Group id="PB.Group">
<Label resid="PB.Group.Label"/>
<Icon>
<bt:Image size="16" resid="PB.bot_16"/>
<bt:Image size="32" resid="PB.bot_32"/>
<bt:Image size="80" resid="PB.bot_80"/>
</Icon>
<Control xsi:type="Button" id="PB.Info">
<Label resid="PB.Info.Label"/>
<Supertip>
<Title resid="PB.Info.Title"/>
<Description resid="PB.Info.Desc"/>
</Supertip>
<Icon>
<bt:Image size="16" resid="PB.bot_16"/>
<bt:Image size="32" resid="PB.bot_32"/>
<bt:Image size="80" resid="PB.bot_80"/>
</Icon>
<Action xsi:type="ShowTaskpane">
<TaskpaneId>PB.Info</TaskpaneId>
<SourceLocation resid="PB.Info.Url"/>
</Action>
</Control>
</Group>
<Label resid="PB.Tab.Label"/>
</CustomTab>
</ExtensionPoint>
</DesktopFormFactor>
</Host>
</Hosts>
<Resources>
<bt:Images>
<bt:Image id="PB.bot_16" DefaultValue="https://gcp.patentbots.com/static/word-add-in/bot_head_16.png"/>
<bt:Image id="PB.bot_32" DefaultValue="https://gcp.patentbots.com/static/word-add-in/bot_head_32.png"/>
<bt:Image id="PB.bot_80" DefaultValue="https://gcp.patentbots.com/static/word-add-in/bot_head_80.png"/>
</bt:Images>
<bt:Urls>
<bt:Url id="PB.Info.Url" DefaultValue="https://gcp.patentbots.com/word-add-in/info"/>
</bt:Urls>
<bt:ShortStrings>
<bt:String id="PB.Group.Label" DefaultValue="Patent Bots Add In"/>
<bt:String id="PB.Tab.Label" DefaultValue="Patent Bots GCP"/>
<bt:String id="PB.Info.Label" DefaultValue="Patent Bots"/>
<bt:String id="PB.Info.Title" DefaultValue="Information about Patent Bots"/>
</bt:ShortStrings>
<bt:LongStrings>
<bt:String id="PB.Info.Desc" DefaultValue="Information about Patent Bots"/>
</bt:LongStrings>
</Resources>
</VersionOverrides>
</OfficeApp>
Note: I have added standalone property on the first element and included the High ResolutionIconURL element
And the output I am getting on my word
Hope it helps.
The problem fixed itself without any changes to my add in. Looks like a bug that Microsoft fixed or maybe a caching issue that eventually resolved itself.

Office add-in validation fails for IconUrl though it is a 32x32 px image

I have the following line in my manifest
<IconUrl DefaultValue="images/icon-32.png"/>
and also
<Host ...>
...
<Control ...>
....
<Icon>
<bt:Image size="16" DefaultValue="images/icon-16.png"/>
<bt:Image size="32" DefaultValue="images/icon-32.png"/>
<bt:Image size="80" DefaultValue="images/icon-80.png"/>
</Icon>
</Control>
</Host>
But when I submit for approval, I am getting the following error from the Office Store Team.
The icon referenced in the IconUrl element of your add-in manifest must be 32x32 pixels in dimension.
And it is referred to the document Validation Policies point 5.10
I have verified the image to be exactly 32x32 px in size in PNG format. While testing the add-in, the icon-32.png is loaded in the Home menu panel
Update
The complete manifest file is added below
<?xml version="1.0" encoding="UTF-8"?>
<OfficeApp
xmlns="http://schemas.microsoft.com/office/appforoffice/1.1"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:bt="http://schemas.microsoft.com/office/officeappbasictypes/1.0"
xmlns:ov="http://schemas.microsoft.com/office/taskpaneappversionoverrides" xsi:type="TaskPaneApp">
<Id>aabbccdd-aabbccdd-aabbccdd-aabbccdd</Id>
<Version>1.0</Version>
<ProviderName>TestAddin</ProviderName>
<DefaultLocale>en-US</DefaultLocale>
<DisplayName DefaultValue="TestAddin" />
<Description DefaultValue="A Test addin"/>
<IconUrl DefaultValue="https://wireframepro.mockflow.com/integrations/office365/images/icon-32.png" />
<SupportUrl DefaultValue="http://tesaddin.local" />
<AppDomains>
<AppDomain>http://tesaddin.local/</AppDomain>
</AppDomains>
<Hosts>
<Host Name="Document" />
</Hosts>
<DefaultSettings>
<SourceLocation DefaultValue="http://tesaddin.local/index.html" />
</DefaultSettings>
<Permissions>ReadWriteDocument</Permissions>
<Requirements>
<Sets DefaultMinVersion="1.1">
<Set Name="WordApi" MinVersion="1.1"/>
</Sets>
</Requirements>
<VersionOverrides
xmlns="http://schemas.microsoft.com/office/taskpaneappversionoverrides" xsi:type="VersionOverridesV1_0">
<Hosts>
<Host xsi:type="Document">
<DesktopFormFactor>
<GetStarted>
<Title resid="ACME.GetStarted.Title"/>
<Description resid="ACME.GetStarted.Description"/>
<LearnMoreUrl resid="ACME.GetStarted.LearnMoreUrl"/>
</GetStarted>
<ExtensionPoint xsi:type="PrimaryCommandSurface">
<OfficeTab id="TabHome">
<Group id="ACME.Group1">
<Label resid="ACME.Group1Label" />
<Icon>
<bt:Image size="16" resid="ACME.tpicon_16x16" />
<bt:Image size="32" resid="ACME.tpicon_32x32" />
<bt:Image size="80" resid="ACME.tpicon_80x80" />
</Icon>
<Control xsi:type="Button" id="ACME.TaskpaneButton">
<Label resid="ACME.TaskpaneButton.Label" />
<Supertip>
<Title resid="ACME.TaskpaneButton.Label" />
<Description resid="ACME.TaskpaneButton.Tooltip" />
</Supertip>
<Icon>
<bt:Image size="16" resid="ACME.tpicon_16x16" />
<bt:Image size="32" resid="ACME.tpicon_32x32" />
<bt:Image size="80" resid="ACME.tpicon_80x80" />
</Icon>
<Action xsi:type="ShowTaskpane">
<TaskpaneId>ButtonId1</TaskpaneId>
<SourceLocation resid="ACME.Taskpane.Url" />
</Action>
</Control>
</Group>
</OfficeTab>
</ExtensionPoint>
</DesktopFormFactor>
</Host>
</Hosts>
<Resources>
<bt:Images>
<bt:Image id="ACME.tpicon_16x16" DefaultValue="https://wireframepro.mockflow.com/integrations/office365/images/icon-16.png" />
<bt:Image id="ACME.tpicon_32x32" DefaultValue="https://wireframepro.mockflow.com/integrations/office365/images/icon-32.png" />
<bt:Image id="ACME.tpicon_80x80" DefaultValue="https://wireframepro.mockflow.com/integrations/office365/images/icon-80.png" />
</bt:Images>
<bt:Urls>
<bt:Url id="ACME.Taskpane.Url" DefaultValue="http://tesaddin.local/index.html" />
<bt:Url id="ACME.GetStarted.LearnMoreUrl" DefaultValue="https://go.microsoft.com/fwlink/?LinkId=276812" />
</bt:Urls>
<bt:ShortStrings>
<bt:String id="ACME.TaskpaneButton.Label" DefaultValue="Open Editor" />
<bt:String id="ACME.Group1Label" DefaultValue="Test Addin" />
<bt:String id="ACME.GetStarted.Title" DefaultValue="Get started with Test Addin" />
</bt:ShortStrings>
<bt:LongStrings>
<bt:String id="ACME.TaskpaneButton.Tooltip" DefaultValue="Open Editor" />
<bt:String id="ACME.GetStarted.Description" DefaultValue="Test add-in has been loaded succesfully. You can access the editor in HOME tab, click Open Editor" />
</bt:LongStrings>
</Resources>
</VersionOverrides>
</OfficeApp>
I confirmed the image referenced in your IconUrl is 32x32. Based on what you've posted, I don't see a problem with your image. I suggest re-submitting and mentioning that you couldn't replicate the icon issue from the previous failure.
There are a couple of issue with your manifest that you should address first:
The requirements element should come immediately after your hosts element. While this shouldn't effect the add-in, it is tripping up the automated validation script. Simply moving it after hosts will eliminate this being incorrectly flagged during manifest validation.
You've got a couple of references to http://tesaddin.local/index.html. Add-ins are required to operate over a secure transport (https). The only URIs in your manifest that should use http are the XML schema references. Given the .local, I assume this is just a standing URL for posting on SO so this may not be an issue in your actual manifest.

Sharepoint 2010 REST List Service is missing person fields?

When accessing a Sharepoint 2010 list via the REST service endpoint using listdata.svc:
.../_vti_bin/listdata.svc/ExpenseBudgetSubmissionRequests
The response is missing person/user fields that are defined in the list:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<feed xml:base=".../_vti_bin/listdata.svc/" xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns="http://www.w3.org/2005/Atom">
<title type="text">ExpenseBudgetSubmissionRequests</title>
<id>.../_vti_bin/listdata.svc/ExpenseBudgetSubmissionRequests/</id>
<updated>2017-08-17T08:03:15Z</updated>
<link rel="self" title="ExpenseBudgetSubmissionRequests" href="ExpenseBudgetSubmissionRequests" />
<entry m:etag="W/"1"">
<id>.../_vti_bin/listdata.svc/ExpenseBudgetSubmissionRequests(1)</id>
<title type="text">Department1</title>
<updated>2017-08-16T11:20:29+01:00</updated>
<author>
<name />
</author>
<link rel="edit" title="ExpenseBudgetSubmissionRequestsItem" href="ExpenseBudgetSubmissionRequests(1)" />
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Status" type="application/atom+xml;type=entry" title="Status" href="ExpenseBudgetSubmissionRequests(1)/Status" />
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/CreatedBy" type="application/atom+xml;type=entry" title="CreatedBy" href="ExpenseBudgetSubmissionRequests(1)/CreatedBy" />
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/ModifiedBy" type="application/atom+xml;type=entry" title="ModifiedBy" href="ExpenseBudgetSubmissionRequests(1)/ModifiedBy" />
<link rel="http://schemas.microsoft.com/ado/2007/08/dataservices/related/Attachments" type="application/atom+xml;type=feed" title="Attachments" href="ExpenseBudgetSubmissionRequests(1)/Attachments" />
<category term="Microsoft.SharePoint.DataService.ExpenseBudgetSubmissionRequestsItem" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
<content type="application/xml">
<m:properties>
<d:ContentTypeID>0x0100F434AF171BE4B04F8C760EB990D765EF</d:ContentTypeID>
<d:Department>Department1</d:Department>
<d:CostCentre>CostCentre1</d:CostCentre>
<d:FinancialYear m:type="Edm.Double">2017</d:FinancialYear>
<d:StatusValue>Unsubmitted</d:StatusValue>
<d:Id m:type="Edm.Int32">1</d:Id>
<d:ContentType>Item</d:ContentType>
<d:Modified m:type="Edm.DateTime">2017-08-16T11:20:29</d:Modified>
<d:Created m:type="Edm.DateTime">2017-08-16T11:20:29</d:Created>
<d:CreatedById m:type="Edm.Int32">2</d:CreatedById>
<d:ModifiedById m:type="Edm.Int32">2</d:ModifiedById>
<d:Owshiddenversion m:type="Edm.Int32">1</d:Owshiddenversion>
<d:Version>1.0</d:Version>
<d:Path>.../Lists/Expense Budget Submission Requests</d:Path>
</m:properties>
</content>
</entry>
</feed>
Attempted to specify person fields through the $select and $exapnd parameters but with no success. How do you access the person fields?
Credit to this blog entry:
https://thesharepointdive.wordpress.com/2014/09/17/user-field-does-not-appear-sharepoint-2010-rest-services/
The List attribute is missing from the Schema.xml, however without the right access I cannot seem to edit the Schema xml file directly.
Solution: In the list settings set the person field to choose from a user group. You can always set it back to All users afterwards but this action creates the List attribute against the field in the list schema.xml.
User fields are now present in the REST response.