Question

I have created a Visual Studio extension that is compatible with Visual Studio versions 2005 - 2013. For VS2010 and later I've just uploaded the extension in vsix format to the gallery and to be honest I want to keep the comfortable vsix format for these newer versions of VS. My problem is that I want to publish the extension for legacy VS versions (2005 and 2008) as well and I haven't found a clean solution to my problem despite spending several days with research.

What I've done so far:

  • I've found out that pre-VS2010 VS versions made use of msi installers to get the job done and many people created msi installers that work for both pre- and post VS2010 VS versions. (Note: I don't want msi isntaller for VS2010 and later, there vsix is OK for me).
  • Checked out wix and read some docs/examples, it can create msi installers from vsix but the details are still not clear for me...
  • I've never created complex msi installer that detect installation paths etc... I've spent at least 2 days by testing out the features of a test msi installer project in VS2005 and VS2008. To me this msi creation process seems to be quite error prone and I don't know the pitfalls of creating msi for extensions.
  • I've examined the manual installation steps that have to be performed to deploy an extension for VS2005 and VS2008 (registry modifications, post-executing devenv, ...)

Questions:

  • I want to keep the vsix format for VS2010 and later - can I distribute an msi on the Visual Studio Gallery page for VS2005 and VS2008 using the same extension guid I used for VS2010 and later? Is this possible or a single guid is allowed only in case of distributing a single msi for all versions?
  • How does the Visual Studio gallery page extract the extension id/guid from the msi? (The gallery page does this without problems in case of a vsix package).
  • If I use wix to create an msi from vsix can it deal with both VS2005 and VS2008 using a single msi? (This is important, especially when someone has both versions on his machine...)
  • If I decide to create my own msi (for example by creating an installer project in VS) then what are the most important restrictions/requirements to meet in order to get a valid extension installer msi? (extra requirements for the msi installer of a VS extension compared to the installer of any other regular software).
  • I've tried to find a simple msi extension installer project example among opensource software sources using google but I wasn't successful, can you point at an example to "copy-paste"?
  • I was thinking about creating a simple custom installer in C# that performs the manual installation steps. Could I upload this into the Visual Studio gallery? (I guess not...)

Any comments/suggestions are welcome especially if you have already faced a similar situation.

Was it helpful?

Solution

Speaking from my own experience, I developed several packages with VS 2005-2013 support. I use Wix generating .msi that copies files and writes to HKLM\Software\Microsoft\VisualStudio\x.0. Supporting only VS 2005/2008 from an .msi should be even more simple.

Visual Studio gallery doesn't extract anything from msi (you can even just post a link to your site). I don't have links to good samples, but basically you need to add info about your package to HKLM\Software\Microsoft\VisualStudio\9.0\Packages plus Menus and ToolWindows.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top