错误"无法将类型为'系统.运行时类型'的对象强制转换为类型'EnvDTE80.DTE2'



我正在尝试模仿这里所做的操作。我添加了所有必需的引用,并使用与示例中相同版本的VS(2017(,使用相同的代码行。当尝试运行以下代码行时:

EnvDTE80.DTE2 dte=System.Type.GetTypeFromProgID("Microsoft.VisualStudio.dte.15.0"(;

存在错误,";无法将类型"System.type"隐式转换为"EnvDTE80.DTE2"。

好的,那么我试试这个,

EnvDTE80.DTE2 dte=(EnvDTV80.DTE2(System.Type.GetTypeFromProgID("Microsoft.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自动化接口的最新示例,您可以查看以下两个项目中的任意一个:

  • https://github.com/tcunit/TcUnit-Runner
  • https://github.com/tcunit/TcUnit/tree/master/TcUnit-Verifier

相关内容

  • 没有找到相关文章

最新更新