From 193486b9a362cd56248372a525502e8d00ea6083 Mon Sep 17 00:00:00 2001 From: Matt Ward Date: Mon, 27 Mar 2006 20:44:44 +0000 Subject: [PATCH] SD2-702 - Importing an old project that is read-only throws an unhandled exception. The unauthorized access exception is now caught and an error message is displayed to the user. git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/branches/2.0@1243 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61 --- .../Services/ProjectService/ProjectService.cs | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/Main/Base/Project/Src/Services/ProjectService/ProjectService.cs b/src/Main/Base/Project/Src/Services/ProjectService/ProjectService.cs index 7c0b7ac949..990421539c 100644 --- a/src/Main/Base/Project/Src/Services/ProjectService/ProjectService.cs +++ b/src/Main/Base/Project/Src/Services/ProjectService/ProjectService.cs @@ -214,9 +214,14 @@ namespace ICSharpCode.SharpDevelop.Project public static void LoadSolution(string fileName) { BeforeLoadSolution(); - openSolution = Solution.Load(fileName); - if (openSolution == null) + try { + openSolution = Solution.Load(fileName); + if (openSolution == null) + return; + } catch (UnauthorizedAccessException ex) { + MessageService.ShowError(ex.Message); return; + } try { string file = GetPreferenceFileName(openSolution.FileName); if (FileUtility.IsValidFileName(file) && File.Exists(file)) { @@ -258,7 +263,12 @@ namespace ICSharpCode.SharpDevelop.Project ILanguageBinding binding = LanguageBindingService.GetBindingPerProjectFile(fileName); IProject project; if (binding != null) { - project = LanguageBindingService.LoadProject(fileName, solution.Name); + try { + project = LanguageBindingService.LoadProject(fileName, solution.Name); + } catch (UnauthorizedAccessException ex) { + MessageService.ShowError(ex.Message); + return; + } } else { MessageService.ShowError(StringParser.Parse("${res:ICSharpCode.SharpDevelop.Commands.OpenCombine.InvalidProjectOrCombine}", new string[,] {{"FileName", fileName}})); return;