VSTS Build/RM Tasks for Office JS Outlook Add-Ins2 min read

I’m currently in a project that is developing an Office JS Outlook Add-In.

One goal of the project was applying DevOps practices: Automatically deploying the add-in from within VSTS Release Management & Build.

Since no build task existed yet, I’ve decided to develop my own tasks, which are now being shared to the public.

What are the tasks doing?

Outlook Add-Ins are rolled out through the Exchange or Office 365 server. To get your add-in into Outlook Desktop, Web or Tablet versions you have to enroll the add-in on the server.
This can either be done through the Outlook web mail interface, or automatically through Exchange Web Services (EWS).
This is exactly what the build tasks are doing – they’re doing EWS to install or uninstall your Outlook Add-In into either Office 365 or an Exchange Server.

How to install the tasks into VSTS

Go to the tasks’ Visual Studio Marketplace page and hit “install”.


How to use the tasks

Within your build or release management process – click “add step”.

In the “add task” dialog – pick “Install Office Outlook Add-In” or “Uninstall…”.

How to configure the tasks

Both install / and uninstall task need to have two parameters supplied:

The path to the application’s manifest xml file – which is part of the Office Add-In.
See the Office team’s documentation around the manifest here.

The endpoint of the Exchange or Office 365 service – on which the add-in should be installed.
First time you need to create the endpoint – by clicking on “Manage”.

This brings you to the central VSTS/TFS service endpoint page.
Add  a new generic service endpoint:

Then set the endpoint configuration:
The Server URL should be your custom Exchange Server or https://mail.office365.com/ for Office 365.

Going back to Build / Release process you can now pick the endpoint.

With both the manifest XML and the endpoint configured, you can now use the install/uninstall task within your build or release.

Feedback, Issues & Source Code

The source code is written in NodeJS.
It is available on the GitHub page.
Please post any feedback or issues that you may find on GitHub.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.