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:
authorLluis Sanchez <llsan@microsoft.com>2021-05-13 20:43:18 +0300
committerLluis Sanchez <llsan@microsoft.com>2021-05-13 20:43:18 +0300
commit0d604eb2ddf4c06a5e34d6c53d095605738a9b57 (patch)
treea8f81b62c58d2c51287c48a8a481d4ba99b568b2
parent4ae477426811bfd913e10d6940a5eec43ab07ae3 (diff)
Test
-rw-r--r--[-rwxr-xr-x]Mono.Addins/Mono.Addins/AddinEngine.cs43
1 files changed, 27 insertions, 16 deletions
diff --git a/Mono.Addins/Mono.Addins/AddinEngine.cs b/Mono.Addins/Mono.Addins/AddinEngine.cs
index d73a464..fe2c248 100755..100644
--- a/Mono.Addins/Mono.Addins/AddinEngine.cs
+++ b/Mono.Addins/Mono.Addins/AddinEngine.cs
@@ -262,24 +262,35 @@ namespace Mono.Addins
Assembly CurrentDomainAssemblyResolve(object sender, ResolveEventArgs args)
{
- lock (LocalLock) {
- string assemblyName = args.Name;
-
- if (assemblyResolvePaths.TryGetValue (assemblyName, out var inAddin)) {
- if (inAddin.TryGetAssembly (assemblyName, out var assembly))
- return assembly;
-
- int index = inAddin.Module.AssemblyNames.IndexOf (assemblyName);
- if (index != -1) {
- var path = inAddin.GetFilePath (inAddin.Module.Assemblies[index]);
- assembly = Assembly.LoadFrom (path);
- inAddin.RegisterAssemblyLoad (assemblyName, assembly);
-
- return assembly;
+ try
+ {
+ lock (LocalLock)
+ {
+ string assemblyName = args.Name;
+
+ if (assemblyResolvePaths.TryGetValue(assemblyName, out var inAddin))
+ {
+ if (inAddin.TryGetAssembly(assemblyName, out var assembly))
+ return assembly;
+
+ int index = inAddin.Module.AssemblyNames.IndexOf(assemblyName);
+ if (index != -1)
+ {
+ var path = inAddin.GetFilePath(inAddin.Module.Assemblies[index]);
+ assembly = Assembly.LoadFrom(path);
+ inAddin.RegisterAssemblyLoad(assemblyName, assembly);
+
+ return assembly;
+ }
}
- }
- return null;
+ return null;
+ }
+ }
+ catch (Exception ex)
+ {
+ Console.WriteLine(ex);
+ throw;
}
}