Browse Source

Don't crash when loading solution with invalid GUID

pull/32/merge
Daniel Grunwald 13 years ago
parent
commit
a7c5a3e877
  1. 13
      src/Main/SharpDevelop/Project/SolutionLoader.cs

13
src/Main/SharpDevelop/Project/SolutionLoader.cs

@ -241,8 +241,8 @@ namespace ICSharpCode.SharpDevelop.Project @@ -241,8 +241,8 @@ namespace ICSharpCode.SharpDevelop.Project
string location = match.Groups["Location"].Value;
FileName projectFileName = FileName.Create(Path.Combine(parentSolution.Directory, location));
var loadInformation = new ProjectLoadInformation(parentSolution, projectFileName, title);
loadInformation.TypeGuid = Guid.Parse(match.Groups["TypeGuid"].Value);
loadInformation.IdGuid = Guid.Parse(match.Groups["IdGuid"].Value);
loadInformation.TypeGuid = ParseGuidDefaultEmpty(match.Groups["TypeGuid"].Value);
loadInformation.IdGuid = ParseGuidDefaultEmpty(match.Groups["IdGuid"].Value);
SolutionSection section;
while ((section = ReadSection(isGlobal: false)) != null) {
loadInformation.ProjectSections.Add(section);
@ -252,6 +252,15 @@ namespace ICSharpCode.SharpDevelop.Project @@ -252,6 +252,15 @@ namespace ICSharpCode.SharpDevelop.Project
NextLine();
return loadInformation;
}
static Guid ParseGuidDefaultEmpty(string value)
{
Guid guid;
if (Guid.TryParse(value, out guid))
return guid;
else
return Guid.Empty;
}
#endregion
#region Load Configurations

Loading…
Cancel
Save