From 2f32cc398d9d707951b8d1c12337e6a6d21a7fb6 Mon Sep 17 00:00:00 2001 From: Siegfried Pammer Date: Sat, 25 Jan 2014 02:02:31 +0100 Subject: [PATCH] (temporarily) fix #292: Opening .xaml file that makes use of user controls causes SharpDevelop to load the user .dlls --- .../WpfDesign.AddIn/Src/MyTypeFinder.cs | 20 +++++---- .../WpfDesign.AddIn/Src/WpfToolbox.cs | 45 ++++++++++--------- .../WpfDesign.AddIn/Src/WpfViewContent.cs | 8 ++-- 3 files changed, 40 insertions(+), 33 deletions(-) diff --git a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.AddIn/Src/MyTypeFinder.cs b/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.AddIn/Src/MyTypeFinder.cs index b7fa4f2d6e..2e419ba20b 100644 --- a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.AddIn/Src/MyTypeFinder.cs +++ b/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.AddIn/Src/MyTypeFinder.cs @@ -26,15 +26,17 @@ namespace ICSharpCode.WpfDesign.AddIn f.file = file; f.ImportFrom(CreateWpfTypeFinder()); - var compilation = SD.ParserService.GetCompilationForFile(file.FileName); - foreach (var referencedAssembly in compilation.ReferencedAssemblies) { - try { - var assembly = Assembly.LoadFrom(referencedAssembly.GetReferenceAssemblyLocation()); - f.RegisterAssembly(assembly); - } catch (Exception ex) { - ICSharpCode.Core.LoggingService.Warn("Error loading Assembly : " + referencedAssembly.FullAssemblyName, ex); - } - } + // TODO : reimplement this! + // DO NOT USE Assembly.LoadFrom +// var compilation = SD.ParserService.GetCompilationForFile(file.FileName); +// foreach (var referencedAssembly in compilation.ReferencedAssemblies) { +// try { +// var assembly = Assembly.LoadFrom(referencedAssembly.GetReferenceAssemblyLocation()); +// f.RegisterAssembly(assembly); +// } catch (Exceptions ex) { +// ICSharpCode.Core.LoggingService.Warn("Error loading Assembly : " + referencedAssembly.FullAssemblyName, ex); +// } +// } return f; } diff --git a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.AddIn/Src/WpfToolbox.cs b/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.AddIn/Src/WpfToolbox.cs index a12c9112f2..24ac9c976e 100644 --- a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.AddIn/Src/WpfToolbox.cs +++ b/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.AddIn/Src/WpfToolbox.cs @@ -70,27 +70,30 @@ namespace ICSharpCode.WpfDesign.AddIn if (f != null && !addedAssemblys.Contains(f)) { try { - var assembly = Assembly.LoadFrom(f); - - SideTab sideTab = new SideTab(sideBar, assembly.FullName.Split(new[] {','})[0]); - sideTab.DisplayName = StringParser.Parse(sideTab.Name); - sideTab.CanBeDeleted = false; - sideTab.ChoosedItemChanged += OnChoosedItemChanged; - - sideTab.Items.Add(new WpfSideTabItem()); - - foreach (var t in assembly.GetExportedTypes()) - { - if (IsControl(t)) - { - sideTab.Items.Add(new WpfSideTabItem(t)); - } - } - - if (sideTab.Items.Count > 1) - sideBar.Tabs.Add(sideTab); - - addedAssemblys.Add(f); + // DO NOT USE Assembly.LoadFrom!!! + // see http://community.sharpdevelop.net/forums/t/19968.aspx + // TODO : reimplement this! +// var assembly = Assembly.LoadFrom(f); +// +// SideTab sideTab = new SideTab(sideBar, assembly.FullName.Split(new[] {','})[0]); +// sideTab.DisplayName = StringParser.Parse(sideTab.Name); +// sideTab.CanBeDeleted = false; +// sideTab.ChoosedItemChanged += OnChoosedItemChanged; +// +// sideTab.Items.Add(new WpfSideTabItem()); +// +// foreach (var t in assembly.GetExportedTypes()) +// { +// if (IsControl(t)) +// { +// sideTab.Items.Add(new WpfSideTabItem(t)); +// } +// } +// +// if (sideTab.Items.Count > 1) +// sideBar.Tabs.Add(sideTab); +// +// addedAssemblys.Add(f); } catch (Exception ex) { WpfViewContent.DllLoadErrors.Add(new SDTask(new BuildError(f, ex.Message))); } diff --git a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.AddIn/Src/WpfViewContent.cs b/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.AddIn/Src/WpfViewContent.cs index 0f9a47c3fa..40cb586860 100644 --- a/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.AddIn/Src/WpfViewContent.cs +++ b/src/AddIns/DisplayBindings/WpfDesign/WpfDesign.AddIn/Src/WpfViewContent.cs @@ -43,7 +43,8 @@ namespace ICSharpCode.WpfDesign.AddIn BasicMetadata.Register(); - WpfToolbox.Instance.AddProjectDlls(file); + // TODO Move this Initialization to LoadInternal +// WpfToolbox.Instance.AddProjectDlls(file); ProjectService.ProjectItemAdded += ProjectService_ProjectItemAdded; @@ -53,8 +54,9 @@ namespace ICSharpCode.WpfDesign.AddIn void ProjectService_ProjectItemAdded(object sender, ProjectItemEventArgs e) { - if (e.ProjectItem is ReferenceProjectItem) - WpfToolbox.Instance.AddProjectDlls(this.Files[0]); + // TODO reimplement this! +// if (e.ProjectItem is ReferenceProjectItem) +// WpfToolbox.Instance.AddProjectDlls(this.Files[0]); } static WpfViewContent()