This article explains the assembly DLLs used when creating add-ins for Visual Studio
.NET.
When you create a Visual Studio .NET add-in using the wizard, several
assembly DLLs are added to your add-in project. Depending on your needs, you may
need to add some other extensibility assemblies. The common assemblies that you
use in an add-in are:
| Assembly |
Visual Studio Version |
Description |
| Extensibility.dll |
2002, 2003, 2005, 2008, 2010 |
This assembly contains the definition of the IDTExtensibility2
interface (implemented by all add-ins) and some enums related to the
connection and disconnection of the add-in. |
| CommandBars
Assemblies |
| Office.dll |
2002, 2003 |
This assembly contains the commandbar model for borrowed from Office. |
| Microsoft.VisualStudio.CommandBars.dll |
2005, 2008, 2010 |
This assembly contains the commandbar model specific for Visual
Studio 2005, replacing Office.dll. The model is the same, but this dll
does not contain stuff that only applies to Office but not to Visual
Studio add-ins. |
| Common (all
languages) automation model |
| EnvDTE.dll |
2002, 2003, 2005, 2008, 2010 |
This assembly contains the extensibility model of Visual Studio to
manage the IDE, solutions, projects, files, code, etc. |
| EnvDTE80.dll |
2005, 2008, 2010 |
This assembly does not replace EnvDTE.dll. Rather, it contains
additional classes, interfaces and enums (typically ending with "2" such
as EnvDTE80.DTE2) with additional methods. So, a Visual Studio 2005
add-in references both EnvDTE.dll and EnvDTE80.dll. |
| EnvDTE90.dll |
2008, 2010 |
This assembly does not replace EnvDTE.dll or EnvDTE80.dll.
Rather, it contains additional classes, interfaces and enums (typically ending
with "3" such as EnvDTE90.HTMLWindow3) with additional methods. So, a Visual
Studio 2008 add-in references EnvDTE.dll, EnvDTE80.dll and EnvDTE90.dll. |
| EnvDTE90a.dll |
2008 SP1, 2010 |
This assembly does not replace EnvDTE90.dll. Rather, it
contains additional classes, interfaces and enums related to the debugger. |
| EnvDTE100.dll |
2010 |
This assembly does not replace
EnvDTE.dll, EnvDTE80.dll or EnvDTE90.dll. Rather, it contains additional
classes, interfaces and enums. |
| VB.NET/C# automation
model |
| VSLangProj.dll |
2002, 2003, 2005, 2008, 2010 |
This assembly contains an additional extensibility model for VB.NET,
C# and Visual J# projects. For example, to manage references, that other
projects lack. See the Related Articles section at the end of this
article. |
| VSLangProj2.dll |
2003, 2005, 2008, 2010 |
This assembly does not replace VSLangProj.dll. Rather, it contains
additional enums (that previously you had to hardcode) and interfaces. |
| VSLangProj80.dll |
2005, 2008, 2010 |
This assembly does not replace VSLangProj.dll or VSLangProj2.dll.
Rather, it contains additional enums (that previously you had to
hardcode) and interfaces. |
| VSLangProj90.dll |
2008, 2010 |
This assembly does not replace VSLangProj.dll, VSLangProj2.dll
or VSLangProj80.dll.
Rather, it contains additional enums (that previously you had to
hardcode) and interfaces. |
| VSLangProj100.dll |
2010 |
This assembly does not replace VSLangProj.dll,
VSLangProj2.dll, VSLangProj80.dll or VSLangProj90.dll. Rather, it contains
additional enums (that previously you had to hardcode). |
| VSLangProj110.dll |
2012 |
This assembly does not replace VSLangProj.dll,
VSLangProj2.dll, VSLangProj80.dll, VSLangProj90.dll or VSLangProj100.dll. Rather, it contains
additional enums and interfaces. |
| VsWebSite.Interop.dll |
2005, 2008, 2010 |
This assembly contains the extensibility model for the new Web Site
project type introduced in Visual Studio 2005. See the Related Articles
section at the end of this article. |
| VsWebSite.Interop90.dll |
2008, 2010 |
This assembly does not replace VsWebSite.Interop.dll.
Rather, it contains additional enums (that previously you had to hardcode) and
interfaces. |
| VsWebSite.Interop100.dll |
2010 |
This assembly does not replace VsWebSite.Interop.dll or
VsWebSite.Interop90.dll.
Rather, it contains additional enums (that previously you had to hardcode) and
interfaces. |
| Visual C++
automation model |
| Microsoft.VisualStudio.VCProject.dll |
All |
This assembly contains types for the Visual C++ automation
model. Each Visual Studio version provides an assembly that completely replaces
the ones of the previous versions. |
| Microsoft.VisualStudio.VCProjectEngine.dll |
All |
This assembly contains types for the Visual C++ automation
model. Each Visual Studio version provides an assembly that completely replaces
the ones of the previous versions. |
| Microsoft.VisualStudio.VCCodeModel.dll |
All |
This assembly contains types for the Visual C++ automation
model. Each Visual Studio version provides an assembly that completely replaces
the ones of the previous versions. |
Notice that while the VB.NET/C# automation model assemblies (VSLangProj*.dll)
complement the previous versions providing additional types, the Visual C++
automation model assemblies (Microsoft.VisualStudio.VC*.dll) completely replace
the previous versions in each Visual Studio version.