/// <summary> /// Load an assembly given its byte stream /// </summary> /// <param name="assembly">The byte stream of assembly</param> /// <returns>The loaded assembly</returns> public static Assembly LoadFrom(Stream assembly) { return(ClrFacade.LoadFrom(assembly)); }
private Assembly LoadMshSnapinAssembly(PSSnapInInfo mshsnapinInfo) { Assembly assembly = null; s_mshsnapinTracer.WriteLine("Loading assembly from GAC. Assembly Name: {0}", mshsnapinInfo.AssemblyName); try { // WARNING: DUPLICATE CODE see InitialSessionState assembly = Assembly.Load(new AssemblyName(mshsnapinInfo.AssemblyName)); } catch (FileLoadException e) { s_mshsnapinTracer.TraceWarning("Not able to load assembly {0}: {1}", mshsnapinInfo.AssemblyName, e.Message); } catch (BadImageFormatException e) { s_mshsnapinTracer.TraceWarning("Not able to load assembly {0}: {1}", mshsnapinInfo.AssemblyName, e.Message); } catch (FileNotFoundException e) { s_mshsnapinTracer.TraceWarning("Not able to load assembly {0}: {1}", mshsnapinInfo.AssemblyName, e.Message); } if (assembly != null) { return(assembly); } s_mshsnapinTracer.WriteLine("Loading assembly from path: {0}", mshsnapinInfo.AssemblyName); try { AssemblyName assemblyName = ClrFacade.GetAssemblyName(mshsnapinInfo.AbsoluteModulePath); if (string.Compare(assemblyName.FullName, mshsnapinInfo.AssemblyName, StringComparison.OrdinalIgnoreCase) != 0) { string message = StringUtil.Format(ConsoleInfoErrorStrings.PSSnapInAssemblyNameMismatch, mshsnapinInfo.AbsoluteModulePath, mshsnapinInfo.AssemblyName); s_mshsnapinTracer.TraceError(message); throw new PSSnapInException(mshsnapinInfo.Name, message); } assembly = ClrFacade.LoadFrom(mshsnapinInfo.AbsoluteModulePath); } catch (FileLoadException e) { s_mshsnapinTracer.TraceError("Not able to load assembly {0}: {1}", mshsnapinInfo.AssemblyName, e.Message); throw new PSSnapInException(mshsnapinInfo.Name, e.Message); } catch (BadImageFormatException e) { s_mshsnapinTracer.TraceError("Not able to load assembly {0}: {1}", mshsnapinInfo.AssemblyName, e.Message); throw new PSSnapInException(mshsnapinInfo.Name, e.Message); } catch (FileNotFoundException e) { s_mshsnapinTracer.TraceError("Not able to load assembly {0}: {1}", mshsnapinInfo.AssemblyName, e.Message); throw new PSSnapInException(mshsnapinInfo.Name, e.Message); } return(assembly); }
/// <summary> /// Load an assembly given its file path. /// </summary> /// <param name="assemblyPath">The path of the file that contains the manifest of the assembly.</param> /// <returns>The loaded assembly.</returns> public static Assembly LoadFrom(string assemblyPath) { return(ClrFacade.LoadFrom(assemblyPath)); }