1

以下を使用してVisual Studioインスタンスを作成しようとしています:

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);

問題はまだあります。ちょっと考えが足りません...本当に無効な文字列エラーですか?

4

1 に答える 1

1

Visual Studio 2013 Express を使用している場合は、これで修正できます。

Type t = Type.GetTypeFromProgID("WDExpress.DTE.12.0", true);
var x = (EnvDTE80.DTE2)System.Activator.CreateInstance(t, true);
于 2014-12-11T09:45:41.583 に答える