A way to disable caching


It would be nice if there were a way to disabling caching in Mono Addins.
For instance, if some of the addins are with typenames that an obfuscator deals with (example: the addins are inside the same project), things tend to break horribly when I update them. Here is an example:
Unhandled Exception: System.InvalidOperationException: Type 'y.G' not found in add-in 'ST.Builtin,1.0'
at Mono.Addins.RuntimeAddin.GetType (System.String typeName, Boolean throwIfNotFound) [0x00000] in <filename unknown>:
at Mono.Addins.TypeExtensionNode.get_Type () [0x00000] in <filename unknown>:0
at C.S.Q () [0x00000] in <filename unknown>:0
at C.S.w () [0x00000] in <filename unknown>:0
at C.S+d.l () [0x00000] in <filename unknown>:0
at System.Threading.Thread.StartUnsafe () [0x00000] in <filename unknown>:0
This is my main frustration with the otherwise completely usable Mono Addins. Please consider an option to have it either (a) not cache or (b) rescan instead of crash in the event of a cache miss.


Madrang wrote Oct 5, 2012 at 6:43 AM

Try to call AddinManager.Registry.Rebuild(null); instead of AddinManager.Registry.Update(null);
I had the same problem, it's because Mono.Addins keep a cache of the addin information and will update it only if you change the version number. But rebuild will reload all that information instead of using the cache.

wrote Feb 14, 2013 at 8:21 PM