Процесс devenv продолжает работать в фоновом режиме после закрытия Visual Studio 2015
Проблема
Когда я закрываю Visual Studio 2015, нажимая кнопку закрытия в среде IDE, процесс devenv.exe продолжает работать в фоновом режиме от 3-5 минут, после этого он автоматически закрывается, действительно странно,
Я обнаружил эту проблему, потому что я пытался автоматически установить расширение с помощью DTE
(так же, как и в Visual Studio 2013 в прошлом без каких-либо проблем), но когда я вызываю метод dte.Quit()
, он не закрывает Visual Studio 2015, devenv.exe будет сохраняться в фоновом режиме навсегда (до тех пор, пока ручный процесс не завершится).
Вопрос
У кого-то может возникнуть идея, почему я страдаю этой проблемой?
У кого-то такая же проблема?, кто-то нашел способ ее исправить?
Это официальная ошибка?, есть обновление или патч?.
Или, может быть, в худшем случае, следуя новой философии Microsoft, это может быть один из их механизмов шпиона, который продолжает работать, даже когда конечный пользователь пытался закрыть среду IDE?.
Исследование
У меня плохие знания для решения таких проблем, как отладка стороннего приложения или обратных инженерных знаний, но я сделал некоторые основные вещи:
- Пробовал procmon из SysInternals, но я не заметил никаких
странный вызов.
- Также я использовал приложение Nirsoft под названием WhatIsHang, которое определяет
любые текущие приложения, которые висят в системе, затем показывают
какая-то отладочная информация об этом, но WhatIsHang не распознает зависание
devenv.exe, поэтому, по крайней мере, я знаю, что devenv.exe не является
висит, похоже, просто "неактивно" что-то делает
странный, и этот процесс никогда не выходит сам.
Спецификации среды
Версия Windows:
Windows Spy 10, а также Windows 10 Professional (v10.0.10240) 64-разрядной версии, работающей на VMWare WorkStation.
Версия Visual Studio:
2015 Professional (v14.0.23107.0)
Расширения сторонних разработчиков IDE или любые другие модификации Installed?:
Нет, это новая установка продукта.
Ответы
Ответ 1
Чтобы программа devenv.exe автоматически закрывалась при запуске с использованием автоматизации, вызовите dte.UserControl = false;
http://www.mztools.com/articles/2005/mz2005005.aspx
DTE.UserControl: если установлено значение True, среда IDE остается открытой после того, как вы закончите автоматизацию. Это полезно, если вы хотите открыть среду IDE, выполнить некоторые действия и оставить ее открытой для продолжения использования пользователем. Если установлено значение False, объект будет выпущен после того, как вы закончите автоматизацию, и процесс devenv.exe не должен оставаться в памяти (используйте его, чтобы проверить его). Если он остается в памяти, это означает, что вы не выпускаете все COM-обертки, используемые для его автоматизации.
Ответ 2
Я также столкнулся с этой проблемой, и мне просто удалось решить ее исключительно случайно. Я использовал Resharper 9, и я просто обновился до Resharper 10. Это разрешило это для меня.
РЕДАКТИРОВАТЬ. Похоже, моя радость была преждевременной; После открытия более сложного решения VS2015 снова отказывается выйти после закрытия...