Since VSIP packages aren't supported in the Express editions of VS 2005 and
since our product doesn't make sense with VSTO, we'd like to have our
installer detect the edition on the machine and take appropriate action at
install time.
What's the definitive way to identify editions? Should our installers be
querying the registry or the MSI database to discover the edition? Ideally,
we'd like to know whether Standard, Pro, or TS was installed. (Conversely,
we'd fail our install if only Express or VSTO were installed.)
How would this same question be answered in VS 2003 (distingushing VS 2003
Enterprise Architect, Enterprise Developer, Professional, and Academic)?
Robert McIntyre (MSFT) - 02 Sep 2005 21:40 GMT
Jim,
This is a great question, and a chance to tell the community know about a
little-known fact: You can co-create an instance of Visual Studio from
outside VS!
Why would you want to do this? Well, if you do that you can then use
EnvDTE.DTE.Version and EnvDTE.DTE.Edition in a custom action to control your
install logic. .Version returns the version number of the instance of VS
co-created, while .Edition returns a string with the Edition.
Unfortunately, VSTO isn't distinguishable from any of the other editions
that it's installed with, and while everything that you'd need to look for is
in there in the registry/msi database we don't encourage people to rely on
them, since we can (and sometimes do) change them as we need to.
The good news is that this process can be used for any of the recent
versions of Visual Studio (2002, 2003, 2005).
For more information about co-creating instances of Visual Studio, check out
Craig Skibo's blog: http://blogs.msdn.com/craigskibo/archive/2003/10.aspx
Hope this helps!
Robert McIntyre (MSFT)
Visual Studio Product Team
> Since VSIP packages aren't supported in the Express editions of VS 2005 and
> since our product doesn't make sense with VSTO, we'd like to have our
[quoted text clipped - 8 lines]
> How would this same question be answered in VS 2003 (distingushing VS 2003
> Enterprise Architect, Enterprise Developer, Professional, and Academic)?