EnvDTE在Visual Studio 2012中替代

时间:2012-08-25 06:10:53

标签: visual-studio visual-studio-2012 envdte

到目前为止,我已成功使用EnvDTE来管理Visual Studio工具箱。

有定制的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?

2 个答案:

答案 0 :(得分:14)

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

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

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

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

答案 1 :(得分:6)

虽然

中仅存在 envdte100.dll
c:\Program Files (x86)\Common Files\microsoft shared\MSEnv\PublicAssemblies\

以下适用于Visual Studio 2012:

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

DTE objDTE = (DTE)Activator.CreateInstance(typeDTE, true);