/// <summary> /// Called by ProjectDocumentTracker when a solution is closed /// </summary> protected override void OnSolutionClosed() { Debug.Assert(ProjectMap.ProjectCount == 0); Debug.Assert(ProjectMap.UniqueFileCount == 0); try { ProjectMap.Clear(); _unreloadable.Clear(); StatusCache.ClearCache(); // Clear status for reopening solution _managedSolution = false; _isDirty = false; Translate_ClearState(); IPendingChangesManager mgr = GetService <IPendingChangesManager>(); if (mgr != null) { mgr.Clear(); } } finally { base.OnSolutionClosed(); } }
/// <summary> /// Called by ProjectDocumentTracker just before a solution is closed /// </summary> /// <remarks>At this time the closing can not be canceled.</remarks> protected override void OnStartedSolutionClose() { foreach (SccProjectData pd in ProjectMap.AllSccProjects) { pd.Dispose(); } ProjectMap.Clear(); }