在我关闭 Visual Studio 2015 后,devenv 进程将 运行 保留在后台

devenv process keeps running in background after I close Visual Studio 2015

问题


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

我发现这个问题是因为我试图使用 DTE 自动安装扩展程序(就像我过去为 Visual Studio 2013 所做的一样,没有任何问题),但是当我调用方法 dte.Quit() 它不会使 Visual Studio 2015 关闭,devenv.exe 将永远保留在后台(直到手动进程终止)。

问题


有人知道我为什么会遇到这个问题吗?

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

是官方BUG吗,请问有更新或补丁吗。

或者在最坏的情况下,新的 Microsoft "philosophy" 可能是他们的间谍机制之一,即使最终用户试图关闭 IDE,也会保留 运行? .

研究


我对解决问题的知识很差,比如调试第 3 方应用程序或逆向工程知识,但我做了一些基本的事情:

环境规范


Windows版本

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

Visual Studio版本

2015 专业版 (v14.0.23107.0)

第 3 方 IDE 扩展或任何其他类型的修改已安装?

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

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

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

DTE.UserControl: when set to True, the IDE remains open after you are done with the automation. This is useful if you want to open the IDE, perform some action, and keep it open for the user to continue using it. When set to False, the object is released after you are done with the automation and the devenv.exe process shouldn't remain in memory (use the Task Manager to verify it). If it stays in memory, it means that you are not releasing all COM wrappers used to automate it.

我也遇到了这个问题,纯属机缘巧合下解决了。我使用的是 Resharper 9,我刚刚升级到 Resharper 10。这为我解决了这个问题。

编辑:看来我的高兴为时过早;打开比较复杂的解决方案,VS2015关闭后再次拒绝退出...

转到任务管理器,然后是后台进程。关闭 visual studio。它对我有用。

我在使用 devenv 安装 SQL Server Data Tools (SSDT) 时出错 Visual Studio 2017。

我重新启动 Windows 10 Pro,错误消失了

一种突然的方法,但绝对应该终止该过程。因为在任务管理器里找不到,我就通过CMD终端杀掉进程

taskkill /F /PID (id) -- where id is the process id

执行运行命令后,如果成功,您将看到以下消息。

SUCCESS: The process with PID 21916 has been terminated.

然后继续安装。