I have discovered today by chance that there was a new assembly EnvDTE90a.dll on my machine, whose namespace EnvDTE90a is documented in the MSDN docs:
As you may know, the common automation model is supplied by a set of EnvDTEXX.dll assemblies:
- EnvDTE.dll (provided by VS.NET 2002 and higher)
- EnvDTE80.dll (provided by VS 2005 and higher)
- EnvDTE90.dll (provided by VS 2008)
Each one provides new types and does not replace the old ones. Rather, it adds classes like CodeClass2, HTMLWindow3, etc.
Then you have the VB.NET / C# specific automation model which is supplied by a set of VSLangProjXX.dll assemblies:
- VSLangProj.dll (provided by VS.NET 2002 and higher)
- VSLangProj2.dll (provided by VS.NET 2003 and higher)
- VSLangProj80.dll (provided by VS 2005 and higher)
- VSLangProj90.dll (provided by VS 2008)
Again, each one provides new types and does not replace the old ones.
Finally, you have the Visual C++ specific automation model which is supplied by the following assemblies:
On the contrary to the other automation assemblies, each Visual Studio version provides a different version and each version completely replaces the old one.
- 7.0.3300.0 (Visual Studio .NET 2002)
- 7.0.5000.0 (Visual Studio .NET 2003)
- 220.127.116.11 (Visual Studio 2005)
- 18.104.22.168 (Visual Studio 2008)
(Don’t get me started about the inconsistencies in the version numbering in Visual Studio)
The new EnvDTE90a.dll assembly is supplied by the SP1 of VS 2008 and it provides new automation capabilities for the debugger. AFAIK, this is the first time that a service pack introduces a new automation assembly but the SP1 of VS 2008 is much more than a service pack that fixes bugs, it introduced much new functionality.
I have updated this article of mine to reflect this:
INFO: Assemblies used in Visual Studio Extensibility