我正在尝试模仿这里所做的操作。我添加了所有必需的引用,并使用与示例中相同版本的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