Commit ddebeaec authored by Vinicius Jarina's avatar Vinicius Jarina
Browse files

Fixed load_assembly (using PublicKey, Version from mscorlib)

parent 2b34d005
...@@ -266,19 +266,42 @@ namespace NLua ...@@ -266,19 +266,42 @@ namespace NLua
{ {
try { try {
string assemblyName = LuaLib.LuaToString (luaState, 1).ToString (); string assemblyName = LuaLib.LuaToString (luaState, 1).ToString ();
Assembly assembly = null; Assembly assembly = null;
Exception exception = null;
try { try {
assembly = Assembly.Load (assemblyName); assembly = Assembly.Load (assemblyName);
} catch (BadImageFormatException) { } catch (BadImageFormatException) {
// The assemblyName was invalid. It is most likely a path. // The assemblyName was invalid. It is most likely a path.
} catch (FileNotFoundException e) {
exception = e;
}
#if !SILVERLIGHT
if (assembly == null) {
try {
assembly = Assembly.Load (AssemblyName.GetAssemblyName (assemblyName));
} catch (FileNotFoundException e) {
exception = e;
}
if (assembly == null) {
AssemblyName mscor = assemblies [0].GetName ();
AssemblyName name = new AssemblyName ();
name.Name = assemblyName;
name.CultureInfo = mscor.CultureInfo;
name.Version = mscor.Version;
name.SetPublicKeyToken (mscor.GetPublicKeyToken ());
name.SetPublicKey (mscor.GetPublicKey ());
assembly = Assembly.Load (name);
if (assembly != null)
exception = null;
}
if (exception != null)
ThrowError (luaState, exception);
} }
#if !SILVERLIGHT
if (assembly == null)
assembly = Assembly.Load (AssemblyName.GetAssemblyName (assemblyName));
#endif #endif
if (assembly != null && !assemblies.Contains (assembly)) if (assembly != null && !assemblies.Contains (assembly))
assemblies.Add (assembly); assemblies.Add (assembly);
} catch (Exception e) { } catch (Exception e) {
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment