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 对象。对象解决方案的处理方式不同,您应该这样做

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 中创建的模板加载两个项目。你是对的,似乎一切都仍然使用 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)。

于 2011-08-02T15:28:25.517 回答