Merge pull request #251 from TorchAPI/plugin-asm-resolve

Fix assembly resolving.
This commit is contained in:
John Gross
2018-08-15 19:10:26 -07:00
committed by GitHub

View File

@@ -325,23 +325,23 @@ namespace Torch.Managers
if (IsAssemblyCompatible(requiredAssemblyName, asm.GetName())) if (IsAssemblyCompatible(requiredAssemblyName, asm.GetName()))
return asm; return asm;
} }
_log.Warn($"Could find dependent assembly! Requesting assembly: {args.RequestingAssembly}, dependent assembly: {requiredAssemblyName}"); if (requiredAssemblyName.Name.EndsWith(".resources", StringComparison.OrdinalIgnoreCase))
return null;
foreach (var asm in assemblies)
if (asm == args.RequestingAssembly)
{
_log.Warn($"Couldn't find dependency! {args.RequestingAssembly} depends on {requiredAssemblyName}.");
break;
}
return null; return null;
} }
try
{
AppDomain.CurrentDomain.AssemblyResolve += ResolveDependentAssembly; AppDomain.CurrentDomain.AssemblyResolve += ResolveDependentAssembly;
foreach (Assembly asm in assemblies) foreach (Assembly asm in assemblies)
{ {
TorchBase.RegisterAuxAssembly(asm); TorchBase.RegisterAuxAssembly(asm);
} }
} }
finally
{
AppDomain.CurrentDomain.AssemblyResolve -= ResolveDependentAssembly;
}
}
private static bool IsAssemblyCompatible(AssemblyName a, AssemblyName b) private static bool IsAssemblyCompatible(AssemblyName a, AssemblyName b)
{ {