/// <summary> /// Recupera o assembly do pacote informado. /// </summary> /// <param name="package"></param> /// <returns></returns> public System.IO.Stream GetAssemblyPackageStream(IAssemblyPackage package) { package.Require("package").NotNull(); var fileName = GetAssemblyPackageLocalFileName(package.Uid); if (System.IO.File.Exists(fileName)) { return(System.IO.File.OpenRead(fileName)); } return(null); }
/// <summary> /// Tenta carregar o assembly associado com o nome informado. /// </summary> /// <param name="assemblyName">Nome do assembly.</param> /// <param name="assembly">Instancia do assembly carregado.</param> /// <param name="exception">Error ocorrido</param> /// <returns>True caso o assembly tenha sido carregado com sucesso.</returns> public bool TryGet(string assemblyName, out System.Reflection.Assembly assembly, out Exception exception) { var assemblyName2 = new System.Reflection.AssemblyName(assemblyName); System.Reflection.Assembly assembly2 = null; exception = null; try { assembly2 = _domain.Load(assemblyName2); } catch (Exception ex) { exception = ex; assembly = null; } if (assembly2 != null) { assembly = assembly2; return(true); } var assemblyPart = new AssemblyPart(assemblyName); IAssemblyPackage package = null; try { var container = _assemblyRepository.GetAssemblyPackages(new AssemblyPart[] { assemblyPart }); package = container.FirstOrDefault(); } catch (Exception ex) { exception = ex; assembly = null; return(false); } if (package != null) { assembly2 = package.GetAssembly(assemblyPart); assembly = assembly2; exception = null; return(assembly2 != null); } else { assembly = null; return(false); } }
/// <summary> /// Valida o pacote. /// </summary> /// <param name="assemblyPackage"></param> /// <param name="files"></param> /// <returns></returns> private bool Validate(IAssemblyPackage assemblyPackage, IDictionary <string, FileInfo2> files) { if (assemblyPackage == null) { return(false); } FileInfo2 info = null; foreach (var part in assemblyPackage) { if (!files.TryGetValue(part.Source, out info) || info.LastWriteTime > assemblyPackage.CreateTime) { return(false); } } return(true); }
/// <summary> /// Recupera a stream do pacote do assembly. /// </summary> /// <param name="package"></param> /// <returns></returns> public System.IO.Stream GetAssemblyPackageStream(IAssemblyPackage package) { throw new NotSupportedException(); }