protected override DomainExtractorPair GetExtractor(string path) { if (_pair == null) { lock (typeof(AssemblyManager)) { if (_pair == null) { _pair = new DomainExtractorPair(AppDomain.CurrentDomain, new AssemblyExtractor()); } } } return _pair; }
protected override DomainExtractorPair GetExtractor(string path) { if (_pair == null) { lock (typeof(AssemblyManager)) { if (_pair == null) { _pair = GetExtractorInTempAppDomain(path); } } } return(_pair); }
public AssemblyDetail ExtractAssemblyInf(string assemblyPath, DiffConfig config) { if (!Path.IsPathRooted(assemblyPath)) { assemblyPath = Path.GetFullPath(assemblyPath); } Log.Verbose("Extracting from assembly {0}", Path.GetFileName(assemblyPath)); DomainExtractorPair pair = GetExtractor(assemblyPath); AssemblyDetail ad = pair.Extractor.ExtractFrom(assemblyPath, config); OneExtractionComplete(pair); return(ad); }
protected override DomainExtractorPair GetExtractor(string path) { if (_pair == null) { lock (typeof(AssemblyManager)) { if (_pair == null) { _pair = new DomainExtractorPair(AppDomain.CurrentDomain, new AssemblyExtractor()); } } } return(_pair); }
public AssemblyDetail ExtractAssemblyInf(string assemblyPath, DiffConfig config) { if (!Path.IsPathRooted(assemblyPath)) { assemblyPath = Path.GetFullPath(assemblyPath); } Log.Verbose("Extracting from assembly {0}", Path.GetFileName(assemblyPath)); var deleteFiles = new ConcurrentQueue <string>(); DomainExtractorPair pair = GetExtractor(assemblyPath); AssemblyDetail ad = pair.Extractor.ExtractFrom(assemblyPath, config, ref deleteFiles); OneExtractionComplete(pair); OnUnloadDeleteFiles(deleteFiles); return(ad); }
protected virtual void OneExtractionComplete(DomainExtractorPair pair) { }
protected override void OneExtractionComplete(DomainExtractorPair pair) { Log.Verbose("Unloading " + pair.Domain.FriendlyName); AppDomain.Unload(pair.Domain); }