问题描述
我正在尝试模仿what is done here。我已经添加了所有必需的引用,并使用与示例中相同的VS(2017)版本,并使用相同的代码行。尝试运行以下代码行时:
EnvDTE80.DTE2 dte = System.Type.GetTypeFromProgID(“ VisualStudio.DTE.15.0”);
出现错误“无法将类型'System.Type'隐式转换为'EnvDTE80.DTE2'。
好,那么我尝试一下
EnvDTE80.DTE2 dte =(EnvDTE80.DTE2)System.Type.GetTypeFromProgID(“ VisualStudio.DTE.15.0”);
然后,在运行代码时出现此错误,“无法将类型为'System.RuntimeType'的对象转换为类型为'EnvDTE80.DTE2'
有人可以帮忙吗?我的猜测是,这很简单,因为我是C#的新手。
非常感谢您!
解决方法
您链接到此处的网页的作者:-P
执行此操作:
Type type = System.Type.GetTypeFromProgID("VisualStudio.DTE.15.0");
EnvDTE80.DTE2 dte = (EnvDTE80.DTE2)System.Activator.CreateInstance(type);
有关如何使用DTE和TwinCAT自动化接口的最新示例,您可以查看以下两个项目之一: