【问题标题】:How to shutdown Visual Studio process started by EnvDTE如何关闭由 EnvDTE 启动的 Visual Studio 进程
【发布时间】:2019-02-23 03:59:21
【问题描述】:

我编写了一个控制台应用程序,它使用 EnvDTE 处理 10 个左右的解决方案并以编程方式重构它们 - 更改引用和项目结构

        var envDteType = Type.GetTypeFromProgID("VisualStudio.DTE.15.0");

        var envDte = Activator.CreateInstance(envDteType, true);
        var dte2 = (DTE2)envDte;

        var solution = (Solution4)dte2.Solution;
        solution.Open(filename);

        // execute various tasks

        solution.Close();
        // how to dispose of dte2?

诀窍是,当我的应用程序完成时,仍有一些 Visual Studio 进程仍在运行,大概是由 EnvDTE 打开的。我关闭了唯一可见运行的 Visual Studio 实例,它们仍然存在。

有没有办法关闭 EnvDTE 对象产生的那些进程?

下面好像没有效果

dte2.Application.ActiveWindow.Close();

【问题讨论】:

  • dte2.Quit(); 在所有对象完成之前它不会退出,请确保您的控制台模式应用程序也退出或使用 GC.Collect() 快点进行。如果你调试你的应用程序并且不让它正常结束,那么你必须使用任务管理器来射击僵尸。

标签: visual-studio envdte


【解决方案1】:

Hans 是正确的 - dte2.Quit(); 完成了这项工作

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-16
    • 2017-06-03
    • 2015-02-15
    • 1970-01-01
    • 2011-12-31
    • 1970-01-01
    • 2022-01-15
    • 2010-10-27
    相关资源
    最近更新 更多