private void SolutionEvents_OnBeforeCloseProject(object sender, CloseProjectEventArgs e) { var hierarchy = e.Hierarchy; var listener = _listenersMap[hierarchy]; listener.StopListening(); listener.Dispose(); _listenersMap.Remove(hierarchy); var project = hierarchy.GetProp<EnvDTE.Project>(VSConstants.VSITEMID_ROOT, __VSHPROPID.VSHPROPID_ExtObject); if (project == null) return; var path = project.FullName; var id = new ProjectId(_stringManager.GetId(path)); Debug.WriteLine($"tr: BeforeCloseProject(IsRemoved='{e.IsRemoved}', FullName='{project.FullName}' id={id})"); foreach (var server in _servers) server.BeforeCloseProject(id); }
private void OnBeforeCloseProject(object sender, CloseProjectEventArgs e) { _hierarchieslistener.RemoveHierarchy(e.Hierarchy); RestartTimer(); }