diff --git a/src/Main/Base/Project/Src/Commands/AutostartCommands.cs b/src/Main/Base/Project/Src/Commands/AutostartCommands.cs index 56624365a7..015a83d4f2 100644 --- a/src/Main/Base/Project/Src/Commands/AutostartCommands.cs +++ b/src/Main/Base/Project/Src/Commands/AutostartCommands.cs @@ -23,14 +23,6 @@ using ICSharpCode.SharpDevelop.Dom; namespace ICSharpCode.SharpDevelop.Commands { - public class InitializeWorkbenchCommand : AbstractCommand - { - public override void Run() - { - WorkbenchSingleton.InitializeWorkbench(); - } - } - public class StartWorkbenchCommand // : AbstractCommand { const string workbenchMemento = "WorkbenchMemento"; diff --git a/src/Main/Core/Project/Src/AddInTree/AddIn/Runtime.cs b/src/Main/Core/Project/Src/AddInTree/AddIn/Runtime.cs index d31c7d120e..851cadbecf 100644 --- a/src/Main/Core/Project/Src/AddInTree/AddIn/Runtime.cs +++ b/src/Main/Core/Project/Src/AddInTree/AddIn/Runtime.cs @@ -28,7 +28,7 @@ namespace ICSharpCode.Core } public string Assembly { - get { + get { return assembly; } } @@ -49,7 +49,10 @@ namespace ICSharpCode.Core loadedAssembly = System.Reflection.Assembly.LoadFrom(Path.Combine(hintPath, assembly)); } - loadedAssembly.GetExportedTypes(); // preload assembly to provoke FileLoadException if dependencies are missing + #if DEBUG + // preload assembly to provoke FileLoadException if dependencies are missing + loadedAssembly.GetExportedTypes(); + #endif } catch (FileNotFoundException ex) { MessageService.ShowError("The addin '" + assembly + "' could not be loaded:\n" + ex.ToString()); } catch (FileLoadException ex) { @@ -61,13 +64,13 @@ namespace ICSharpCode.Core } public List DefinedDoozers { - get { + get { return definedDoozers; } } public List DefinedConditionEvaluators { - get { + get { return definedConditionEvaluators; } } diff --git a/src/Main/Core/Project/Src/Services/ResourceService/ResourceService.cs b/src/Main/Core/Project/Src/Services/ResourceService/ResourceService.cs index cfee5e8c39..d70e6a264c 100644 --- a/src/Main/Core/Project/Src/Services/ResourceService/ResourceService.cs +++ b/src/Main/Core/Project/Src/Services/ResourceService/ResourceService.cs @@ -33,8 +33,10 @@ namespace ICSharpCode.Core static string resourceDirectory; - static ResourceService() + public static void InitializeService() { + if (resourceDirectory != null) + throw new InvalidOperationException("Service is already initialized."); resourceDirectory = FileUtility.Combine(PropertyService.DataDirectory, "resources"); PropertyService.PropertyChanged += new PropertyChangedEventHandler(OnPropertyChange); diff --git a/src/Main/StartUp/Project/SharpDevelopMain.cs b/src/Main/StartUp/Project/SharpDevelopMain.cs index 16ef47d1cd..39e2645bb4 100644 --- a/src/Main/StartUp/Project/SharpDevelopMain.cs +++ b/src/Main/StartUp/Project/SharpDevelopMain.cs @@ -162,6 +162,10 @@ namespace ICSharpCode.SharpDevelop MessageService.CustomErrorReporter = ShowErrorBox; #endif + LoggingService.Info("Loading properties..."); + PropertyService.Load(); + ResourceService.InitializeService(); + Assembly exe = typeof(SharpDevelopMain).Assembly; ResourceService.RegisterNeutralStrings(new ResourceManager("Resources.StringResources", exe)); ResourceService.RegisterNeutralImages(new ResourceManager("Resources.BitmapResources", exe)); @@ -217,9 +221,6 @@ namespace ICSharpCode.SharpDevelop static void InitializeCore() { - LoggingService.Info("Loading properties..."); - PropertyService.Load(); - StringParser.RegisterStringTagProvider(new SharpDevelopStringTagProvider()); LoggingService.Info("Loading AddInTree..."); @@ -228,7 +229,7 @@ namespace ICSharpCode.SharpDevelop LoggingService.Info("Initializing workbench..."); // .NET base autostarts // taken out of the add-in tree for performance reasons (every tick in startup counts) - new InitializeWorkbenchCommand().Run(); + WorkbenchSingleton.InitializeWorkbench(); // run workspace autostart commands try {