Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono-addins.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan McGovern <alan@xamarin.com>2013-08-26 20:25:40 +0400
committerAlan McGovern <alan@xamarin.com>2013-08-26 20:27:09 +0400
commit32ac38a32e57a1de31797dc748b465b55b5d12ae (patch)
treeafdec8dff1017fc280e1d41ea9fd2774137fa28d /Mono.Addins.CecilReflector
parent69c8e7382bd73ebbedfc444bd4ac510b6855de06 (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.cs12
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;
}