diff -ruN monodevelop-2.0/src/addins/MonoDevelop.GtkCore/libstetic/Registry.cs monodevelop-2.0-patched/src/addins/MonoDevelop.GtkCore/libstetic/Registry.cs --- monodevelop-2.0/src/addins/MonoDevelop.GtkCore/libstetic/Registry.cs 2009-03-17 16:35:43.000000000 +0100 +++ monodevelop-2.0-patched/src/addins/MonoDevelop.GtkCore/libstetic/Registry.cs 2009-07-23 13:04:07.692646228 +0200 @@ -1,5 +1,6 @@ using System; using System.Collections; +using System.Collections.Generic; using System.Reflection; using System.Xml; using System.Xml.Xsl; @@ -19,6 +20,81 @@ static int changing; static bool changed; + static List gacAssemblies = new List(); + public static List GacAssemblies { + get { return (gacAssemblies); } + } + + public static void AddGacAssembly (string name) + { + if (GacAssemblies.Contains(name) == false) { + GacAssemblies.Add (name); + for (int i=0; i GacAssemblies { + get { return (Registry.GacAssemblies); } + } + + public static void AddGacAssembly (string name) + { + Registry.AddGacAssembly (name); + } + public AssemblyResolverCallback WidgetLibraryResolver { get { return Backend.WidgetLibraryResolver; } set { Backend.WidgetLibraryResolver = value; } diff -ruN monodevelop-2.0/src/addins/MonoDevelop.GtkCore/libsteticui/AssemblyResolver.cs monodevelop-2.0-patched/src/addins/MonoDevelop.GtkCore/libsteticui/AssemblyResolver.cs --- monodevelop-2.0/src/addins/MonoDevelop.GtkCore/libsteticui/AssemblyResolver.cs 2009-03-17 16:35:42.000000000 +0100 +++ monodevelop-2.0-patched/src/addins/MonoDevelop.GtkCore/libsteticui/AssemblyResolver.cs 2009-07-23 13:14:23.197521548 +0200 @@ -155,8 +155,10 @@ return GetCorlib (name); string asm = GetAssemblyInGac (name); - if (asm != null) + if (asm != null) { + Application.AddGacAssembly (asm); return Path.GetFullPath (asm); + } throw new FileNotFoundException ("Could not resolve: " + name); } diff -ruN monodevelop-2.0/src/addins/MonoDevelop.GtkCore/libsteticui/AssemblyWidgetLibrary.cs monodevelop-2.0-patched/src/addins/MonoDevelop.GtkCore/libsteticui/AssemblyWidgetLibrary.cs --- monodevelop-2.0/src/addins/MonoDevelop.GtkCore/libsteticui/AssemblyWidgetLibrary.cs 2009-03-17 16:35:42.000000000 +0100 +++ monodevelop-2.0-patched/src/addins/MonoDevelop.GtkCore/libsteticui/AssemblyWidgetLibrary.cs 2009-07-21 19:02:06.884142808 +0200 @@ -15,6 +15,10 @@ AssemblyResolver resolver; LibraryCache.LibraryInfo cache_info; + public override Assembly Asm { + get { return (assembly); } + } + public AssemblyWidgetLibrary (string name, Assembly assembly) { this.name = name; diff -ruN monodevelop-2.0/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/GuiBuilderProject.cs monodevelop-2.0-patched/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/GuiBuilderProject.cs --- monodevelop-2.0/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/GuiBuilderProject.cs 2009-03-17 16:35:43.000000000 +0100 +++ monodevelop-2.0-patched/src/addins/MonoDevelop.GtkCore/MonoDevelop.GtkCore.GuiBuilder/GuiBuilderProject.cs 2009-07-23 13:09:41.013646259 +0200 @@ -395,6 +395,10 @@ path = pref.Reference; } if (path != null && GuiBuilderService.SteticApp.IsWidgetLibrary (path)) + if (pref.ReferenceType == ReferenceType.Gac) + if (Stetic.Application.GacAssemblies.Contains(path) == false) + Stetic.Application.GacAssemblies.Add (path); + if (path != null && GuiBuilderService.SteticApp.IsWidgetLibrary (path)) return path; else return null;