From a7c5a3e877bca464726dc7028b07c6772bf51a9c Mon Sep 17 00:00:00 2001 From: Daniel Grunwald Date: Tue, 26 Mar 2013 01:08:05 +0100 Subject: [PATCH] Don't crash when loading solution with invalid GUID --- src/Main/SharpDevelop/Project/SolutionLoader.cs | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/Main/SharpDevelop/Project/SolutionLoader.cs b/src/Main/SharpDevelop/Project/SolutionLoader.cs index 807c86b7b3..3111c28642 100644 --- a/src/Main/SharpDevelop/Project/SolutionLoader.cs +++ b/src/Main/SharpDevelop/Project/SolutionLoader.cs @@ -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 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