Visual studio 如何关闭由EnvDTE启动的Visual Studio进程

Visual studio 如何关闭由EnvDTE启动的Visual Studio进程,visual-studio,envdte,Visual Studio,Envdte,我已经编写了一个控制台应用程序,它使用EnvDTE处理10个左右的解决方案,并以编程方式重构它们——改变引用和项目结构 var envDteType = Type.GetTypeFromProgID("VisualStudio.DTE.15.0"); var envDte = Activator.CreateInstance(envDteType, true); var dte2 = (DTE2)envDte; var solu

我已经编写了一个控制台应用程序,它使用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打开的。我关闭了唯一一个可见正在运行的VisualStudio实例,它们仍然存在

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

以下几点似乎没有效果

dte2.Application.ActiveWindow.Close();

Hans’是正确的-
dte2.Quit()
执行作业

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