到目前为止,我已经成功地使用EnvDTE管理Visual。
有用于处理不同Visual版本的自定义DLL:
EnvDTE.dll -公共和自动化(可能适用于所有版本)
EnvDTE80.dll -处理VS 2005
EnvDTE90.dll -处理VS 2008
EnvDTE100.dll -处理VS 2010
然而,没有针对VS 2012的EnvDTE110。是否意味着这些VS自动化的方式与使用这些COM包装库不同?
如果是这样的话,例如,如何使用VS 2012项目和工具箱,而不是使用EnvDTE?
发布于 2012-10-28 12:34:52
虽然只有envdte100.dll存在于
c:\Program Files (x86)\Common Files\microsoft shared\MSEnv\PublicAssemblies\Visual 2012的工作如下:
Type typeDTE = typeDTE = Type.GetTypeFromProgID("VisualStudio.DTE.11.0");
DTE objDTE = (DTE)Activator.CreateInstance(typeDTE, true);发布于 2012-08-27 10:26:00
我认为您误解了EnvDTE版本控制的工作方式。
Visual向后兼容每个版本的EnvDTE。但是,如果一个新版本的Visual需要或公开额外的可扩展性,那么MS就会发布一个新版本的EnvDTE,该版本通过它的接口公开这一点。
因此,例如,可以使用EnvDTE80类与Visual 2012进行交互。您仅限于Visual 2005中可用的可扩展性。或者您可以使用EnvDTE90,并且仅限于Visual 2008发布时可用的内容。
如果最新的VS还没有发布更新版本的EnvDTE,那么您只能使用EnvDTE100。
https://stackoverflow.com/questions/12119667
复制相似问题