What is a VSIX?

The VSIX file is the unit of deployment for a Visual Studio 2010 Extension. Visual Studio will recognize the VSIX extension and install the contents of the file to the right location.

A VSIX file is a zip file that uses the Open Packaging Convention. You can rename the .VSIX extension to .ZIP and use any zip browser (including the Windows File Explorer) to browse its contents.

A simple VSIX file will contain the following:

[Content_Types].xml

This is required for the OPC APIs to know the contents of the file

extension.vsixmanifest

This is the manifest that describes the extension

Product Payload

This is the actual product binaries and files

Supporting files

This can be icons, images, readme files, the end user license terms, or anything else

 

During installation, Visual Studio will unzip the contents of the VSIX file into: %LocalAppData%\Microsoft\VisualStudio\10.0\Extensions\<Company>\<Product>\<Version>

On launch, Visual Studio will look in the Extensions folder and its child folders for extensions and load them. Extensions that are installed by Visual Studio either through the Extension Manager UI, or through the out of process installer launched by double clicking on a VSIX file, will automatically be enabled.

Extensions that are xcopied to that location as a raw folder layout will be disabled by default. They can be enabled via the Extension Manager UI inside of Visual Studio.

To create a basic VSIX file, perform the following:

1) Create a [Content_Types].xml file

2) Create an extension.vsixmanifest file

3) Copy your payload to that location

4) Select all the files

5) Right click

6) Select "Send To"

7) Select "Compressed (zipped) folder"

8) Rename the file extension to .VSIX

Alternatively, you can install the Visual Studio 2010 Beta 1 SDK and create an extension. All of our VS Extension project templates will now generate a VSIX for you when you build the extension.

For those wondering what VSIX actually stands for, it really isn't an acronym. Our original intent was to replace VSI (Visual Studio Installer) and with most things, we tacked an "x" on the end. I actually wanted to use the .VSX extension but Visio beat me to it. We tried a bunch of other extensions and eventually decided to use .VSIX. If we really need to cram in an acronym, I guess we can use "Visual Studio Installer for eXtensions".