We recently created a Word Add-in that uses WordApi 1.3. A client of ours uses a Volume License (VL) version of Word 2016 [Word 2016 MSO (16.0.4849.1000) 32-bit].
As per the Word Javascript API requirement set the Office 2016 version build should be at least Version 1612 (Build 7668.1000). The client's version/build is indeed not supported, since the add-in does not sideload and is not visible to them in the AppSource store.
Our app's requirements are:
<Requirements>
<Sets DefaultMinVersion="1.1">
<Set Name="DialogApi" MinVersion="1.1" />
<Set Name="AddInCommands" MinVersion="1.1" />
<Set Name="WordApi" MinVersion="1.3" />
</Sets>
</Requirements>
Is there an update/patch available for the VL version of Word 2016 that adds support for WordApi 1.3?
Does VL Word 2019 support WordApi 1.3?
Is there any solution or workaround to get the add-in to work on the client's build?
Since many corporations are likely to use a Volume License version of Word, it seems odd that these versions are behind in terms of compatibility with add-in features.
Thanks in advance,
Morgan
It is supported on Word 2019 (non-subscription). It will not be backported to Word 2016 (non-subscription).
I think because of the limitations of the 2016 VL version the only sensible way forward is to develop a native application. You could use your javascript version as a template for the developer so it probably wouldn't be too time consuming to develop.
I think you may also be able to choose between VB.net and C#, making it not too difficult.
Good luck
Related
I am trying to create an Office add-in, mainly for Word, that consists of a simple Task Pane that displays search results from a website. I need it to work in every version of office, as far back as Office 2010. So I have chosen to create it in VSTO, as that seemed to be the most backward compatible approach. My problem is I don't have Word 2010, 2013, 2016, 2019, etc, to test that the add-in works in them, nor do I have any idea of how to build the add-in for backward compatibility in the first place.
I've searched through countless tutorials, Microsoft docs, Stack Overflow answers. I'm stuck. I know it's technically possible because the Grammarly add-in works in Office 2007 thru 2021/365.
Is it even possible for a little dev like me to create an add-in for Word 2010 in 2022?
I am using Visual Studio 2021.
As far as I know Grammarly uses a shimmed COM add-in skeleton (most probably written in C++) which implements the IDTExtensibility2 interface. But VSTO does this for you out of the box by hiding all the complexity COM add-ins could have on board.
Is it even possible for a little dev like me to create an add-in for Word 2010 in 2022?
Yes, of course. It is not necessarily to create C++ COM add-ins, you can easily start creating VSTO add-ins for that. You just need to choose the right .net framework version for that.
The Run solutions in different versions of Microsoft Office article shows Office versions that can be supported by your add-in created with Visual Studio 2022 or earlier and target .net frameworks that can be used for that. Depending on the .net framework chosen you can support different ranges of Office application versions, in short.
The Visual Studio Tools for Office Runtime page lists the VSTO Runtime releases and the corresponding version of Office for which its support lifecycle follows. The Visual Studio 2010 Tools for Office Runtime (VSTO Runtime) ships with various versions of Visual Studio and Microsoft Office and follows the support lifecycle of the parent product. It is recommended that developers install the latest version of the VSTO Runtime with their applications. It will be supported when running with supported versions Office. If the VSTO Runtime needs to be serviced, only the latest version will be updated.
I have an Office add-in manifest file with the following requirement set:
<Requirements>
<Sets DefaultMinVersion="1.3">
<Set Name="WordApi" MinVersion="1.3"/>
</Sets>
</Requirements>
This page indicates that Office 2016 only supports up to WordApi 1.1. However, the manifest validator returns the following satisfied requirements:
- Word for iPad
- Word 2016 for Mac
- Word Online
- Word 2016 or later
I'm not understanding why Word 2016 is part of the allowed versions. From what I can tell, 2019 is when WordApi 1.3 was introduced.
The reason for this question is that this add-in won't run on Word 2016 as the API is insufficient, so I need to make it abundantly clear that it should be excluded from testing after submission.
Thanks in advance.
I have recently developed an Add-in for my company using the Word API. It works perfectly on my machine using Word 2016.
My question is, will this Add-in work for older Word versions (2003 or newer )?
If not is there a work around this, or how to rewrite one that works for all version starting from 2003?
Office.js was launched with Office 2013 for Windows. It is not supported on any versions prior to Office 2013 for Windows (or Office 2016 for Mac).
WordApi is a more recent addition. This API is only supported by Word 2016 for Windows/Mac, Word for iPad and Word Online.
You can find the supported hosts and platforms at Office Add-in Availability.
With regards to your question on a workaround, there isn't any workarounds for leveraging Office.js with legacy/unsupported versions of Office.
I'm currently using Microsoft Office Professional in version 16.0.4266.1001, and it has Word JavaScript API 1.1.
I'm wondering if I can update Word JavaScript API to 1.3 without updating my Microsoft Office Professional?
In that case I would have Microsoft Office Professional version 16.0.4266.1001 and Word Javascript API 1.3.
Thank you for reply :)
New features in the Office.js API have dependency on the updates in the product. so you need to update office if you want to use the 1.3. BTW we are now in Builds 16.0.8229, so your build is quite old, I strongly recommend you to update. thanks!
Unfortunately not; the JS APIs and the supporting host code are intricately connected.
See https://dev.office.com/docs/add-ins/develop/office-js-versioning
Hello I have been fighting some complexities with understanding deployment of Primary Interop Assemblies (PIA) for MS Office. I have Visual Studio Com Add-IN built in VS 2008 on pure com technology (not VSTO see bottom of this for more on that), which references 2003 Primary Interop Assemblies but the add-in may be used on 2003, 2007 or now 2010 Office machines. Because I never know if the customer will be using 2003, 2007, or 2010, I cannot simply deploy one PIA version as a prerequisite (unless I make 3 installers which I do not want to do). Now, my understanding is that when you follow the steps here to add 2003 and 2007 PIA to the prerequisite lists that show up in a Visual Studio (2008) setup package, the prerequisites are smart enough to determine which office version is running on the client you are targeting. So if you were to select 2003 primary interop assemblies and 2007 primary iterop assemblies as both being prerequisites then when this installs on a machine that has 2003 it should be intelligent enough to only try to add the 2003 PIA if those are missing on this machine and if this is a 2007 Office machine then it will only install 2007 PIA (and not try to install 2003 PIA).
Question 1 is this a correct understanding (that the prerequisite packages are this intelligent to only install what it needs based on the version of Office?)
Question 2 is there a way to get the 2010 PIA to show in the list of prerequisites in VS 2008 like 2003 and 2007 do? I do not want to upgrade this project to VS 2010 b/c it is considered a legacy app now with many customers from all around the world using it.
Question 3 Even though the actual assembly references 2003 primary interops, I do not presently deploy those interops with the add-in to the install location. Instead, I am assuming that if I can get the correct PIA installed then I don't need this present in the installation path, since the PIA would be in the GAC. However, one possible approach may be to just include the 2003 assemblies that are referenced (in my case excel and word) in the install path and not worry about the PIA. I suspect this would work on 2003 machines but perhaps not on 2007 and 2010 machines b/c on the latter, even if the 2003 interops that are referenced are found at run time in the install path of the assembly, I think if there is not a Policy.11.0.Microsoft.Office.Interop.Excel/Word(etc) in the GAC, then 2007 and 2010 will likely not know what to do with the 11.0 (2003) interops (as I think the Policy.11.0.Microsoft.Office.Interop files redirect requests for the 2003 interops to 2007 or 2010). Any thoughts on this?
Question 4: There is a well known bug with Framework 2.0 apps Office Add-Ins and Office 2003 where the add-in won't load. This was addressed by KB907417 aka KB908002. Dopes anyone know if this KB necessary if you develop on the 3.0 or 3.5 framework (and make 3.0 or 3.5 a prerequisite) since this problem was specific to framework 2.0? Or does the KB still need to be deployed b/c it's office 2003 that is the problem and not the version of the framework?
As you can tell by my 3 questions what I am trying to ascertain is whether we can build one single installer via the VS setup utility. If the PIAs can be done with one installer but the KB above is the obstacle (as perhaps the answer will come back that even on the 3.0 or 3.5 framework 2003 customers will need the KB) then maybe the path to one installer is to just make the KB a prerequisite across the board and install it on 2007 or 2010 machines, though they technically do not need them. Any thoughts on that option would be appreciated as well. Finally, I am aware that writing a manged Com Add-IN for excel or word is now generally done with VSTO instead of pure managed framework code, but this is not an option presently to change the legacy app to this direction. Also it is reported that the 4.0 framework now can be used to deploy add-ins without making any PIA a prerequisite but again, this is not a viable option right now.
Does the code use any Office 2007+ methods or classes? If not, are you sure you cannot use the 2003 PIAs in all cases? The later apps should be backward-compatible (supporting the same API) so the only reason you'd need an updated PIA is if you needed to access some feature added by 2007 or later, I think.
You may want to take a look at Add-in Express, which promises a one-for-all-versions installer, and is pretty easy to use.
As you can tell by my 3 questions what I am trying to ascertain is whether we can build one single installer via the VS setup utility
You cannot. You must create custom installer packager (setup bootstrapper).
Many years ago I used dotNetInstaller with HTML GUI builder, today WiX toolset would be better solution, I think.
Check how PIA .msi installers are constructed with Orca or .msi and .exe installers flow checking windows installer logs.
Based on registry checks, file checks, installed product checks, windows versions, office versions you can create conditions whether component should be installed or not.
Oh and I advise making plugin installers without prerequisites and installing them conditionally with your custom installer bootstrapper.