问题



当我通过按下IDE上的关闭按钮关闭Visual Studio 2015时,devenv.exe进程在后台运行3-5分钟,然后自动关闭,这很奇怪。

我发现此问题是因为我试图使用DTE自动安装扩展(与过去对Visual Studio 2013所做的相同,没有任何问题),但是当我调用方法dte.Quit()时,它并不能Visual Studio 2015关闭时,devenv.exe将永远保持在后台(直到手动杀死进程)。





有人可能会知道为什么我要遭受这个问题?

有人遇到相同的问题吗?有人找到了解决方法?

这是官方的错误吗?是否有更新或补丁?

还是在最坏的情况下,遵循新的Microsoft“哲学”,即使最终用户试图关闭IDE,间谍机制也可能一直保持运行状态?

研究



我对问题解决之类的知识不多,例如调试第三方应用程序或逆向工程知识,但我做了一些基本的事情:


尝试过SysInternals的procmon,但我没有发现任何
奇怪的电话。
我还使用了一个名为WhatIsHang的Nirsoft应用来确定
然后,系统中挂起的所有当前应用程序都会显示
一些调试信息,但是WhatIsHang无法识别任何挂起
的devenv.exe,所以至少我知道devenv.exe不是
挂起来,似乎只是在做某事“不活跃”
奇怪,这个过程永远不会自己退出。


环境规格



Windows版本:

Windows Spy 10,又名64位Windows 10专业版(v10.0.10240),在VMWare WorkStation上运行。

Visual Studio版本:

2015专业版(v14.0.23107.0)

是否安装了第三方IDE扩展或任何其他类型的修改?:

不,这是该产品的全新安装。

最佳答案

要使devenv.exe在使用自动化启动时自动关闭,请调用dte.UserControl = false;

http://www.mztools.com/articles/2005/mz2005005.aspx


DTE.UserControl:设置为True时,完成自动化后IDE保持打开状态。如果要打开IDE,执行一些操作并使其保持打开状态,以便用户继续使用它,这将很有用。如果设置为False,则在完成自动化操作后将释放对象,并且devenv.exe进程不应保留在内存中(使用任务管理器进行验证)。如果它保留在内存中,则意味着您不会释放用于自动化它的所有COM包装器。

关于.net - 我关闭Visual Studio 2015后,devenv进程仍在后台运行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32035376/

10-10 18:17