EnvDTE在Visual Studio 2012中替代

Lib*_*bor 8 visual-studio envdte visual-studio-2012

到目前为止,我已成功使用EnvDTE来管理Visual Studio Toolbox.

有自定义的DLL来处理不同的Visual Studio版本:

EnvDTE.dll - 常见的VS自动化(可能适用于所有版本)

EnvDTE80.dll - 处理VS 2005

EnvDTE90.dll - 处理VS 2008

EnvDTE100.dll - 处理VS 2010

但是,VS 2012没有EnvDTE110.这是否意味着VS自动化的方式与使用这些COM包装库不同?

如果是这样,除了使用EnvDTE之外,如何远程使用VS 2012项目和Toolbox?

小智 14

我认为你误解了EnvDTE版本的运作方式.

Visual Studio向后兼容每个版本的EnvDTE.但是,如果新版本的Visual Studio需要或公开额外的可扩展性,那么MS将发布更新版本的EnvDTE,通过其接口公开它.

因此,例如,您可以使用EnvDTE80类与Visual Studio 2012进行交互.您只能使用Visual Studio 2005中提供的可扩展性.或者您可以使用EnvDTE90,并且仅限于Visual Studio 2008时可用的内容.出来.

如果尚未使用最新的VS SDK发布较新版本的EnvDTE,则限制为EnvDTE100.


Lib*_*bor 6

虽然只存在envdte100.dll

c:\Program Files (x86)\Common Files\microsoft shared\MSEnv\PublicAssemblies\
Run Code Online (Sandbox Code Playgroud)

以下适用于Visual Studio 2012:

Type typeDTE = typeDTE = Type.GetTypeFromProgID("VisualStudio.DTE.11.0");

DTE objDTE = (DTE)Activator.CreateInstance(typeDTE, true);
Run Code Online (Sandbox Code Playgroud)