Dot-Net

關閉 Visual Studio 2015 後,devenv 程序繼續在後台執行

  • August 16, 2021

問題


當我通過按下 IDE 上的關閉按鈕關閉 Visual Studio 2015 時,devenv.exe程序會在後台執行 3-5 分鐘,之後,它會自動關閉,真的很奇怪。

我發現了這個問題,因為我試圖使用自動安裝擴展程序DTE(就像我過去為 Visual Studio 2013 所做的那樣沒有任何問題),但是當我呼叫該方法dte.Quit()時,它不會使 Visual Studio 2015 關閉,devenv.exe將永遠保留在後台(直到手動終止程序)。


有人可能知道為什麼我會遇到這個問題?

有人有同樣的問題嗎?有人找到解決方法了嗎?

這是一個官方的錯誤?,有更新或更新檔嗎?

或者,在最壞的情況下,遵循新的微軟“哲學”,它可能是他們的間諜機制之一,即使最終使用者試圖關閉 IDE 也會繼續執行?

研究


我對像調試 3rd 方應用程序或逆向工程知識這樣的問題解決方案知之甚少,但我做了一些基本的事情:

  • 嘗試了SysInternals的procmon,但我沒有註意到任何奇怪的呼叫。
  • 我還使用了一個名為WhatIsHang的Nirsoft應用程序,它確定係統中掛起的任何目前應用程序,然後顯示它的一些調試資訊,但WhatIsHang無法辨識devenv.exe的任何掛起,所以至少我知道devenv.exe不是掛起,它似乎只是在做一些奇怪的事情顯然是“不活躍”的,而且這個過程永遠不會自己退出。

環境規格


視窗版本

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

視覺工作室版本

2015 專業版 (v14.0.23107.0)

安裝了第 3 方 IDE 擴展或任何其他類型的修改?

不,這是產品的全新安裝。

要讓 devenv.exe 在使用自動化啟動時自動關閉,請呼叫dte.UserControl = false;

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

DTE.UserControl:設置為 True 時,IDE 在您完成自動化後保持打開狀態。如果您想打開 IDE、執行一些操作並保持打開狀態以供使用者繼續使用,這將非常有用。當設置為 False 時,對像在您完成自動化後被釋放,並且 devenv.exe 程序不應保留在記憶體中(使用任務管理器來驗證它)。如果它保留在記憶體中,則意味著您沒有釋放所有用於自動化它的 COM 包裝器。

引用自:https://stackoverflow.com/questions/32035376