Publishing Visual Studio Online extensions within the preview

We took “there has never been a better time to use Visual Studio Online, and now you have the power to extend it” on to heart Red heart and are currently working on no less than 18 extensions.

image Features discussed herein are in preview, changes are inevitable and code-breaking changes likely.

A special callout and thank you to Will Smythe and his team for the preview and phenomenal early adopter support. In particular Craig Harry, who helped us get a clear understanding of the topic covered herein.

Understanding the environment and terminology

Ready to publish your extension? Review the publication, installation and sharing overview in and publish from the command line.

But first,  it is important to discuss the differences between a VSO account and a Gallery publisher, as shown here:


  1. Visual Studio Online is made up of isolated accounts. The diagram above shows a hypothetical account, named VSO-A.
  2. Visual Studio Online Market is global and made up of publishers. As above we have a hypothetical publisher, named Publisher-X.
  3. VSO-A account is managed by a set of account and collection administrators. This includes which extensions are installed into the account, as normal users do not have the ability to install or uninstall extensions.
  4. Publisher-X publication is created and managed by the gallery publisher. The users that control the publisher, control what extensions are published and when they are private, who may install them.
  5. When ready, the gallery publisher PUBLISHes the extension to the Visual Studio Online Gallery publication.
  6. With a private extension, the gallery publisher SHAREs the extension with Visual Studio Accounts, in our sample with VSO-A.
  7. The account administrator for VSO-A will find the extension under available extensions as shown.
  8. The account administrator for VSO-A then INSTALLs the extension, lighting it up on the Visual Studio Online account.
  9. Visual Studio Online and Visual Studio Online Market are two distinct concepts, with two distinct actions and no association. We PUBLISH an extension to the Visual Studio Online Gallery publisher and INSTALL on Visual Studio accounts.

Do you have questions or feedback? Please add a comment to the post below.

Questions we raised

  • When creating a personal access token, why must we selected all accounts and not have a token targeted at an account?
    • There is no association between a publisher and an account. Certain users were given permission to publish/update extensions under the publisher. These users need to create a PAT that is *not* scoped to any account. This is required since publishing happens outside an account context.
  • When I work with multiple identities and emails, how can I determine who I am logged in as on the Visual Studio Online Gallery ?
  • The overview documentation talks about a public and private extension. How can we make an extension public?
    • Extensions by default will be Private which means they must be shared with accounts to be used. We will cover the public feature at a later stage.
  • When should an extension be private?
    • Use private (default) for internal extensions that are not suitable for public consumption, or while testing your extension.