diff options
author | Alan McGovern <alan@xamarin.com> | 2013-08-26 20:25:40 +0400 |
---|---|---|
committer | Alan McGovern <alan@xamarin.com> | 2013-08-26 20:27:09 +0400 |
commit | 32ac38a32e57a1de31797dc748b465b55b5d12ae (patch) | |
tree | afdec8dff1017fc280e1d41ea9fd2774137fa28d /Mono.Addins.CecilReflector | |
parent | 69c8e7382bd73ebbedfc444bd4ac510b6855de06 (diff) |
[Cecil] Try to ignore unloadable dependencies
Sometimes dependent assemblies cannot be loaded. This scenario does not
always mean the addin is broken, so wrap a try/catch around scanning
dependent assemblies and log/ignore any failures.
Diffstat (limited to 'Mono.Addins.CecilReflector')
-rw-r--r-- | Mono.Addins.CecilReflector/Mono.Addins.CecilReflector/Reflector.cs | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/Mono.Addins.CecilReflector/Mono.Addins.CecilReflector/Reflector.cs b/Mono.Addins.CecilReflector/Mono.Addins.CecilReflector/Reflector.cs index cabeb30..72a7ec5 100644 --- a/Mono.Addins.CecilReflector/Mono.Addins.CecilReflector/Reflector.cs +++ b/Mono.Addins.CecilReflector/Mono.Addins.CecilReflector/Reflector.cs @@ -445,10 +445,14 @@ namespace Mono.Addins.CecilReflector string loc = locator.GetAssemblyLocation (aref.FullName); if (loc == null) continue; - AssemblyDefinition asm = LoadAssembly (loc, true); - td = GetType (asm, name) as TypeDefinition; - if (td != null) - return td; + try { + AssemblyDefinition asm = LoadAssembly (loc, true); + td = GetType (asm, name) as TypeDefinition; + if (td != null) + return td; + } catch { + Console.WriteLine ("Could not scan dependency '{0}'. Ignoring for now.", aref.FullName); + } } return null; } |