From 7027abab31bdf6d80146e2c1086f0562c75bbc06 Mon Sep 17 00:00:00 2001 From: Danny Date: Sun, 11 Oct 2015 22:18:57 -0600 Subject: [PATCH] resolve https://github.com/pythonnet/pythonnet/issues/98 --- src/runtime/assemblymanager.cs | 18 ++++++++++++++++++ src/runtime/moduleobject.cs | 4 ++++ 2 files changed, 22 insertions(+) diff --git a/src/runtime/assemblymanager.cs b/src/runtime/assemblymanager.cs index 35badb71a..29add80be 100644 --- a/src/runtime/assemblymanager.cs +++ b/src/runtime/assemblymanager.cs @@ -208,6 +208,24 @@ public static Assembly LoadAssemblyPath(string name) { return assembly; } + /// + /// Loads an assembly using full path. + /// + /// + /// + public static Assembly LoadAssemblyFullPath(string name) { + Assembly assembly = null; + if (Path.IsPathRooted(name)) { + if (!Path.HasExtension(name)) + name = name + ".dll"; + if (File.Exists(name)) { + try { assembly = Assembly.LoadFrom(name); } + catch { } + } + } + return assembly; + } + //=================================================================== // Returns an assembly that's already been loaded //=================================================================== diff --git a/src/runtime/moduleobject.cs b/src/runtime/moduleobject.cs index 5cd6f2af5..d5dc2a562 100644 --- a/src/runtime/moduleobject.cs +++ b/src/runtime/moduleobject.cs @@ -409,11 +409,15 @@ public static Assembly AddReference(string name) { assembly = AssemblyManager.LoadAssembly(name); } + if (assembly == null) { + assembly = AssemblyManager.LoadAssemblyFullPath(name); + } if (assembly == null) { string msg = String.Format("Unable to find assembly '{0}'.", name); throw new System.IO.FileNotFoundException(msg); } + return assembly ; }