2

VS2010 ソリューションを作成し、スタンドアロン アプリ (アドインではない) からプロジェクトを追加しようとしています。VS2010 のインスタンスを作成できますが、プロジェクトを適切に作成する方法を判断できません... EnvDTE80 オブジェクトを使用してプロジェクトを作成する方法の例しか見つけることができません。ファイルは以前の形式であり、アップグレードする必要があります。私はこれを持っています:

EnvDTE80.DTE2 dte2;
object obj;
System.Type t;
t = System.Type.GetTypeFromProgID("VisualStudio.DTE.10.0", true);
obj = System.Activator.CreateInstance(t, true);
dte2 = (EnvDTE80.DTE2)obj;

私が探しているのは、「EnvDTE100.DTE2」のようなものですが、そこに到達する方法がわかりません。

ありがとう

4

2 に答える 2

4

DTE オブジェクトを経由する必要はありません。オブジェクト solution4 の処理は異なります。これを行う必要があります。

Type latestSolution = Type.GetTypeFromProgID("VisualStudio.10.0", true);
EnvDTE100.Solution4 vsSolution = (EnvDTE100.Solution4)Activator.CreateInstance(latestSolution, true);
于 2011-08-31T12:56:34.037 に答える
1

私は似たようなことをしていると思います。ソリューションを作成し、VS2010で作成したテンプレートから2つのプロジェクトをロードするアプリケーションがあります。VS2010でも、すべてがまだEnvDTE80を使用しているように見えるという点で正しいですが、2010ソリューションを作成するためにそれを使用します。

System.Type type = System.Type.GetTypeFromProgID("VisualStudio.DTE.10.0");
Object obj = System.Activator.CreateInstance(type, true);
EnvDTE80.DTE2 dte2 = (EnvDTE80.DTE2)obj;
EnvDTE100.Solution4 soln = (EnvDTE100.Solution4)dte2.Solution;

次に、solnオブジェクトのメソッドを呼び出して、プロジェクト(私の場合はAddFromTemplate)を作成できます。

于 2011-08-02T15:28:25.517 に答える