Visual Studio 2017 Extensions Update

This post has been republished via RSS; it originally appeared at: Channel 9.

If you are a Visual Studio Extension writer, then with last week's release of Visual Studio 2017 RC, there's some important things you need to know.

First, a quick peek as what is new with extensions in Visual Studio 2017.

Extensibility in Visual Studio 2017

If you are an extension author, you may find Tim Sneath’s post on Extensibility in Visual Studio 2017 interesting. He breaks down all the changes for Visual Studio extensions and what you need to do to get your extension to work in the next major version of Visual Studio.

Here is a quick summary but do check out Tim’s post for details.

Performance monitoring system for extensions. As an extension user, you will now see a gold notification bar when an extension is slowing load time or typing speed. Go to Help > Manage Visual Studio Performance at any time to see the performance of all extensions on your system.

Batch extension updates and installs. It is now very easy to install, update, or remove multiple extensions at the same time.

Extensions can detect and install dependent components. Since the default installation footprint of Visual Studio is much smaller in Visual Studio 2017 RC, we’ve provided the capability for extensions to detect and install any dependent component that are missing from the VS install.

Performance improvements in VS impacting extension authors. We’ve made several performance improvements in Visual Studio 2017 such as lightweight solution load and NGEN support for extensions. These changes have an impact on extension authors.

Also, check out this post on the Marketplace blog that goes into details of new features on the Marketplace and how we have consolidated all extensions across the VS family of products into a single location.

[Original Post]

What does this mean for you?

Check out Carlos Quintero's summary post...

Visual Studio 2017 RC announced. Extensions need some changes

...

Now, if you are a developer of extensions for Visual Studio, you have work to do. Visual Studio 2017 introduces version 3.0 of the manifest (which is backwards compatible with previous versions) but requires that your extension declares the components required in the new modular setup.

To learn how to migrate you extension to VS 2017 read How to: Migrate Extensibility Projects to Visual Studio 2017.

To learn what’s new in the Visual Studio 2017 SDK read What’s New in the Visual Studio 2017 SDK.

See also:

... [Click through to see the post]

Here's a little more details...

What's New in the Visual Studio 2017 SDK

Note: This documentation is preliminary and based on the Visual Studio 2017 RC release.+

The Visual Studio SDK has the following new and updated features for Visual Studio 2017.+

VSIX v3 format

To support the new light-weight install of Visual Studio 2017, the VSIX extension manifest format has been updated to version 3 (VSIX v3).+

The new format has support for:+

  • Explicitly declaring prerequisites to be detected and installed by the VSIXInstaller.
  • Ngen'ing assemblies on extension installation.
  • Installing assets outside the usual extension root.+

To learn about these changes, see the following topics:+

Migrating extensibility project to Visual Studio 2017

To learn how to update your extensibility projects and their VSIX manifests to Visual Studio 2017, see How to: Migrate Extensibility Projects to Visual Studio 2017.+

Custom project and item templates

Starting in Visual Studio 2017, scanning for custom project and item templates will no longer be performed. Instead, the extension must provide template manifest files that describe the install location of these templates. You can use Visual Studio 2017 to update your VSIX extensions. If you deploy your extension using an MSI, you must generate the template manifest files by hand. For more information, see Upgrading Custom Project and Item Templates for Visual Studio 2017. The template manifest schema is documented in Visual Studio Template Manifest Schema Reference.+

Updated Extension Performance Guidelines

There is a new How to: Diagnose extension performance topic under Managing VSPackages to show how to detect and analyze extension impact on Visual Studio startup and solution load times.

Finally how you get your extension ready for Visual Studio 2017...

How to: Migrate Extensibility Projects to Visual Studio 2017

Note: This documentation is preliminary and based on the Visual Studio 2017 RC release.+

This document explains how to upgrade extensibility projects to Visual Studio 2017. In addition to describing how to update the project files, it also describes how to upgrade from extension manifest version 2 (VSIX v2) to the new version 3 VSIX manifest format (VSIX v3).+

Install Visual Studio 2017 RC with required workloads

Make sure your installation includes the following workloads:+

  • .NET desktop development
  • Visual Studio extension development+

Open VSIX Solution in Visual Studio 2017

All VSIX projects will require a major version one-way upgrade to Visual Studio 2017.+

The project file (for example *.csproj) will be updated:+

  • MinimumVisualStudioVersion - now set to 15.0
  • OldToolsVersion (if previously exists) - now set to 14.0+

Update the Microsoft.VSSDK.BuildTools NuGet package...

Make changes to the VSIX extension manifest....

If migrating from Preview 4 or Preview 5....

Update Debug settings for project...

Check that the extension builds correctly (as a VSIX v3)...

Check when all required prerequisites are installed....

Check when missing the required prerequisites...

Deciding on Components...

Finding Component IDs...

[Read the doc]

That will hopefully be enough to get you started. While it might be a little bit of a pain, there's so much in this that we've all been asking for for years that it's worth it.