1
我想创建使用Visual Studio实例:EnvDTE Visual Studio 2013:获取progID?
EnvDTE80.DTE2 dte2;
dte2 = (EnvDTE80.DTE2)System.Runtime.InteropServices.Marshal.GetActiveObject("VisualStudio.DTE.12.0");
而且我总是有例外“无效类字符串”所以我认为这个问题是“VisualStudio.DTE.12.0”。 但是我正在使用Visual Studio 2013 12.0.30501,我也试图只用“VisualStudio.DTE”来获取最新的版本,以及相同的异常。
而且,我试过其他方式:
Type t = Type.GetTypeFromProgID("VisualStudio.DTE.12.0", true);
dte2 = (EnvDTE80.DTE2)System.Activator.CreateInstance(t, true);
的问题仍然存在,我运行了一下出来的想法......难道真的是无效的字符串错误?
不,那是正确的ProgID,如果你有VS2013。您的注册表必须被破坏,请使用Regedit.exe查看HKEY_CLASSES_ROOT \ VisualStudio.DTE.12.0。希望你找不到它。 –
这是正确的,我无法找到注册表中的HKEY_CLASSES_ROOT \ VisualStudio.DTE.12.0。我应该如何“创造”它? – Geoffrey
你的机器坏了。天知道还有什么消失了。随意恐慌。重新运行VS安装程序可能会起作用。 –