Hit an interesting issue with porting Visual Studio VSIX extensions to Dev11. 

To get my extension to work in Dev11, I tweaked the source.extension.vsixmanifest file. While there is a GUI for editing that file, it doesn’t expose the ability to add Dev11 as a supported edition. However, you can open the source.extension.vsixmanifest up in your favorite xml editor and party on it there. In my case, I changed it as follows:

<SupportedProducts> <VisualStudio Version="10.0"> <Edition>Ultimate</Edition> <Edition>Premium</Edition> <Edition>Pro</Edition> <Edition>IntegratedShell</Edition> </VisualStudio> <VisualStudio Version="11.0"> <Edition>Ultimate</Edition> <Edition>Premium</Edition> <Edition>Pro</Edition> <Edition>IntegratedShell</Edition> </VisualStudio> </SupportedProducts>

Easy enough – the vsix installer will then install your extension for both versions. Nice!

vsix

However, I experienced some odd behavior that may catch some people.  There’s another section of the vsixmanifest called the <Content> section.  You are supposed to put an element into that section called the <VsPackage> element, with the name of the pkgdef file (which is an .ini file).  However, in VS2010, you could get away without having this element. But, in Dev11, if you don’t have this element, your extension will install but never initialize.  So make sure you have this element, either as macro, aka

<VsPackage>|%CurrentProject%;PkgdefProjectOutputGroup|</VsPackage>

Or as a hardcoded value:

<VsPackage>MyVSIX.pdkdef</VsPackage>

Finally, be sure to test test test in Dev11, as you never know what might get ya.