How to: Manually Package an Extension (VSIX Deployment)

You can create a VSIX package to wrap a Visual Studio extension for deployment. There are three ways to create the package:

  • Create a VSIX package project by using one of the extensibility templates that are included in the Visual Studio SDK. This is the easiest option for most scenarios.

  • Wrap the output of your extension project in an empty VSIX Project. We recommend this option for templates, unsupported assemblies, and custom types.

  • Manually create a VSIX package. We recommend this option only when the other two options are not available.

    This document describes the third option.

Creating a VSIX Package

To manually package an extension, add an extension.manifest file and a [Content_Types].xml file to the extension project, put them in a compressed file together with your build output, and rename the compressed file so that it has a .vsix file name extension. The extension to be packaged must be of a type that is supported by the VSIX schema.


The names of files in VSIX packages must not include spaces, nor characters that are reserved in Uniform Resource Identifiers (URI), as defined under [RFC2396].

To manually create a VSIX package

  1. Create a Visual Studio extension of a type that is supported by the VSIX schema.

  2. Create an XML file, and name it extension.vsixmanifest.

  3. Fill in the extension.vsixmanifest file according to the VSIX schema. For an example manifest, see PackageManifest Element (Root Element, VSX Schema).

  4. Create a second XML file, and name it [Content_Types].xml.

  5. Fill in the [Content_Types].xml file as specified in The Structure of the Content_types].xml File.

  6. Put both XML files in a directory together with the extension to be deployed.

    In the case of a project template or item template, put the .zip file that contains the template in the same folder as the XML files. Do not put the XML files in the .zip file.

    In all other cases, put the XML files in the same directory as the build output.

  7. In Windows Explorer, right-click the folder that contains the extension content and the two XML files, click Send To, and then click Compressed (zipped) Folder.

  8. Rename the resulting .zip file to Filename.vsix, where Filename is the name of the redistributable file that installs your package.

See Also

Shipping Visual Studio Extensions
Anatomy of a VSIX Package
PackageManifest Element (Root Element, VSX Schema)