Esempio n. 1
0
        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);
        }