bool LoadAssembly(string assemblyLocation, string assemblyName, string gacPrefix, ref Assembly loadedAssembly) { try { loadedAssembly = _assemblyWrapper.Load(assemblyName); } catch (Exception e) { if (assemblyLocation.StartsWith(gacPrefix) && loadedAssembly == null) { var assemblyQualified = assemblyLocation.Replace(gacPrefix, ""); var indexOf = assemblyQualified.IndexOf(", processor", StringComparison.InvariantCultureIgnoreCase); var correctAssemblyName = assemblyQualified.Substring(0, indexOf); loadedAssembly = _assemblyWrapper.Load(correctAssemblyName); } Dev2Logger.Error(e, GlobalConstants.WarewolfError); } LoadDepencencies(loadedAssembly, assemblyLocation); return(true); }
public bool TryLoadAssembly(string assemblyLocation, string assemblyName, out Assembly loadedAssembly) { loadedAssembly = null; var gacPrefix = GlobalConstants.GACPrefix; if (assemblyLocation != null && assemblyLocation.StartsWith(gacPrefix)) { try { try { loadedAssembly = _assemblyWrapper.Load(assemblyName); } catch (Exception e) { if (assemblyLocation.StartsWith(gacPrefix) && loadedAssembly == null) { var assemblyQualified = assemblyLocation.Replace(gacPrefix, ""); var indexOf = assemblyQualified.IndexOf(", processor", StringComparison.InvariantCultureIgnoreCase); var correctAssemblyName = assemblyQualified.Substring(0, indexOf); loadedAssembly = _assemblyWrapper.Load(correctAssemblyName); } Dev2Logger.Error(e); } LoadDepencencies(loadedAssembly, assemblyLocation); return(true); } catch (BadImageFormatException e)//WOLF-1640 { Dev2Logger.Error(e); throw; } catch (Exception e) { Dev2Logger.Error(e.Message); } } else { try { if (assemblyLocation != null) { loadedAssembly = _assemblyWrapper.LoadFrom(assemblyLocation); LoadDepencencies(loadedAssembly, assemblyLocation); } return(true); } catch (BadImageFormatException e)//WOLF-1640 { Dev2Logger.Error(e); throw; } catch { try { if (assemblyLocation != null) { loadedAssembly = _assemblyWrapper.UnsafeLoadFrom(assemblyLocation); LoadDepencencies(loadedAssembly, assemblyLocation); } return(true); } catch (Exception e) { Dev2Logger.Error(e); } } try { if (assemblyLocation != null) { var objHAndle = Activator.CreateInstanceFrom(assemblyLocation, assemblyName); var loadedObject = objHAndle.Unwrap(); loadedAssembly = _assemblyWrapper.GetAssembly(loadedObject.GetType()); } LoadDepencencies(loadedAssembly, assemblyLocation); return(true); } catch (BadImageFormatException e)//WOLF-1640 { Dev2Logger.Error(e); throw; } catch (Exception e) { Dev2Logger.Error(e); } } return(false); }