【问题标题】:Create a solution and add a project using "VisualStudio.DTE.10.0"使用“VisualStudio.DTE.10.0”创建解决方案并添加项目
【发布时间】:2011-07-26 16:08:32
【问题描述】:

我正在尝试创建 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”之类的内容,但不知道如何到达那里。

谢谢

【问题讨论】:

  • 有完整源代码的最终解决方案吗?

标签: visual-studio-2010 envdte


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    我想我正在做类似的事情,我有一个应用程序可以创建一个解决方案并从我在 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)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-18
      • 2016-10-13
      • 1970-01-01
      • 1970-01-01
      • 2011-06-07
      • 1970-01-01
      • 2022-07-23
      • 1970-01-01
      相关资源
      最近更新 更多