到现在为止,我已经成功地使用EnvDTE管理的Visual Studio工具箱。
有定制的DLL来处理不同的Visual Studio版本:
EnvDTE.dll - 共同VS自动化(可能适用于所有版本)
EnvDTE80.dll - 对付VS 2005
EnvDTE90.dll - 对付VS 2008
EnvDTE100.dll - 对付VS 2010
然而,没有EnvDTE110为VS 2012这是否意味着比使用这些COM包装库VS自动化的这些不同的方式?
如果是这样,怎么例如用VS 2012个的工作项目和工具箱远程其他方式比使用EnvDTE?
我想你是误会EnvDTE如何版本的作品。
Visual Studio是与EnvDTE的每一个版本的向后兼容。 但是,如果Visual Studio的新版本或需要额外的暴露可扩展性,则MS释放EnvDTE的新版本,通过其接口公开此。
因此,例如,你可以使用EnvDTE80类与Visual Studio 2012交互你只是仅限于在Visual Studio是可利用的2005或者你可以使用EnvDTE90的可扩展性,并仅限于这是可在Visual Studio 2008中出来。
如果EnvDTE的新版本尚未发布了最新的SDK VS,那么你只限于EnvDTE100。
虽然只存在于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);