代码之家  ›  专栏  ›  技术社区  ›  codeape

使用com、build和read输出连接到正在运行的Visual Studio 2003实例

  •  1
  • codeape  · 技术社区  · 17 年前

    对于Visual Studio 6.0,我可以连接到正在运行的实例,如:

    o = GetActiveObject("MSDev.Application")
    
    • 我在Visual Studio 2003中使用的程序ID是什么?
    • 一旦有引用VS2003实例的COM对象,如何执行“生成解决方案”?
    • 执行生成解决方案命令后,如何获取生成输出窗口的字符串内容?

    是的,我知道我可以从命令行构建解决方案。但在本例中,我需要连接到正在运行的Visual Studio实例。

    编辑:找到并提交了一个答案,请参见下文。

    1 回复  |  直到 17 年前
        1
  •  2
  •   codeape    17 年前

    经过一番研究(主要是查看envdte文档),我自己找到了解决方案:

    要构建当前解决方案(Python中的代码),请执行以下操作:

    def build_active_solution(progid="VisualStudio.DTE.7.1"):
        from win32com.client import GetActiveObject
        dte = GetActiveObject(progid)
        sb = dte.Solution.SolutionBuild
        sb.Build(True)
    
        output = dte.Windows['Output'].Object.ActivePane.TextDocument.Selection
        output.SelectAll()
        return output.Text