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

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

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

Loading…
Cancel
Save