diff --git a/src/Main/Core/Project/Src/Services/MessageService/MessageService.cs b/src/Main/Core/Project/Src/Services/MessageService/MessageService.cs index 50c78de1fa..d04069406a 100644 --- a/src/Main/Core/Project/Src/Services/MessageService/MessageService.cs +++ b/src/Main/Core/Project/Src/Services/MessageService/MessageService.cs @@ -81,6 +81,13 @@ namespace ICSharpCode.Core msg += "Exception occurred: " + ex.ToString(); } + if (MessageService.MainForm == null) { + // let's try this; don't know if it's threadsafe? I expect + // that MainForm.InvokeRequired can be assumed to be false + // if MainForm doesn't exist yet... + MessageBox.Show(StringParser.Parse(msg), StringParser.Parse("SharpDevelop: ${res:Global.ErrorText}"), MessageBoxButtons.OK, MessageBoxIcon.Error); + } else { + MethodInvoker showError = delegate { MessageBox.Show(MessageService.MainForm, StringParser.Parse(msg), StringParser.Parse("${res:Global.ErrorText}"), MessageBoxButtons.OK, MessageBoxIcon.Error); }; @@ -89,6 +96,7 @@ namespace ICSharpCode.Core } else { showError(); } + } } public static void ShowWarning(string message)