【发布时间】: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