使用“VisualStudio.DTE.10.0”创建解决方案并添加项目

时间:2011-07-26 16:08:33

标签: visual-studio-2010 envdte

我正在尝试创建VS2010解决方案并从独立应用程序(不是加载项)添加项目。我可以创建一个VS2010的实例,但我无法确定如何正确创建项目...我只能找到一个如何使用EnvDTE80对象创建项目的示例,后来因为项目而导致异常file是早期格式,需要升级。我有这个:

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”,但不知道如何到达那里。

由于

2 个答案:

答案 0 :(得分:4)

您不必通过DTE对象。对象解决方案4的处理方式不同,你应该这样做

Type latestSolution = Type.GetTypeFromProgID("VisualStudio.10.0", true);
EnvDTE100.Solution4 vsSolution = (EnvDTE100.Solution4)Activator.CreateInstance(latestSolution, true);

答案 1 :(得分:1)

我认为我正在做类似的事情,我有一个创建解决方案的应用程序,并从我在VS2010中创建的模板加载两个项目。你是对的,似乎一切都仍在使用EnvDTE80,即使在VS2010中,但我们用它来创建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)。