Как завершить процесс Visual Studio, запущенный EnvDTE - PullRequest
0 голосов
/ 23 февраля 2019

Я написал консольное приложение, которое использует 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();

1 Ответ

0 голосов
/ 25 февраля 2019

Ганс правильно - dte2.Quit(); делает работу

...