Browse Source

Fix SD-1703 - Deleted and removed projects remain in the solution

pull/14/head
Daniel Grunwald 15 years ago
parent
commit
931436dbb1
  1. 16
      src/Main/Base/Project/Src/Project/Solution/Solution.cs
  2. 8
      src/Main/Base/Project/Src/Services/ProjectService/ProjectService.cs

16
src/Main/Base/Project/Src/Project/Solution/Solution.cs

@ -452,8 +452,6 @@ namespace ICSharpCode.SharpDevelop.Project
{ {
ProjectSection nestedProjectsSection = null; ProjectSection nestedProjectsSection = null;
bool needsConversion = false;
// read solution files using system encoding, but detect UTF8 if BOM is present // read solution files using system encoding, but detect UTF8 if BOM is present
using (StreamReader sr = new StreamReader(newSolution.FileName, Encoding.Default, true)) { using (StreamReader sr = new StreamReader(newSolution.FileName, Encoding.Default, true)) {
string line = GetFirstNonCommentLine(sr); string line = GetFirstNonCommentLine(sr);
@ -465,17 +463,9 @@ namespace ICSharpCode.SharpDevelop.Project
switch (match.Result("${Version}")) { switch (match.Result("${Version}")) {
case "7.00": case "7.00":
needsConversion = true;
if (!MessageService.AskQuestion("${res:SharpDevelop.Solution.ConvertSolutionVersion7}")) {
return false;
}
break;
case "8.00": case "8.00":
needsConversion = true; MessageService.ShowError("${res:SharpDevelop.Solution.CannotLoadOldSolution}");
if (!MessageService.AskQuestion("${res:SharpDevelop.Solution.ConvertSolutionVersion8}")) { return false;
return false;
}
break;
case "9.00": case "9.00":
case "10.00": case "10.00":
case "11.00": case "11.00":
@ -503,7 +493,7 @@ namespace ICSharpCode.SharpDevelop.Project
} }
} }
if (!newSolution.ReadOnly && (newSolution.FixSolutionConfiguration(newSolution.Projects) || needsConversion)) { if (!newSolution.ReadOnly && (newSolution.FixSolutionConfiguration(newSolution.Projects))) {
// save in new format // save in new format
newSolution.Save(); newSolution.Save();
} }

8
src/Main/Base/Project/Src/Services/ProjectService/ProjectService.cs

@ -624,9 +624,11 @@ namespace ICSharpCode.SharpDevelop.Project
static void HandleRemovedSolutionFolder(ISolutionFolder folder) static void HandleRemovedSolutionFolder(ISolutionFolder folder)
{ {
if (folder is IProject) { IProject project = folder as IProject;
OpenSolution.RemoveProjectConfigurations(folder.IdGuid); if (project != null) {
ParserService.RemoveProjectContentForRemovedProject((IProject)folder); OpenSolution.RemoveProjectConfigurations(project.IdGuid);
ParserService.RemoveProjectContentForRemovedProject(project);
project.Dispose();
} }
if (folder is ISolutionFolderContainer) { if (folder is ISolutionFolderContainer) {
// recurse into child folders that were also removed // recurse into child folders that were also removed

Loading…
Cancel
Save