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);
        }
示例#3
0
        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);
        }
示例#4
0
        protected override DomainExtractorPair GetExtractor(string path)
        {
            if (_pair == null)
            {
                lock (typeof(AssemblyManager))
                {
                    if (_pair == null)
                    {
                        _pair = new DomainExtractorPair(AppDomain.CurrentDomain, new AssemblyExtractor());
                    }
                }
            }

            return(_pair);
        }
示例#5
0
        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);
        }
示例#6
0
 protected virtual void OneExtractionComplete(DomainExtractorPair pair)
 {
 }
		protected override void OneExtractionComplete(DomainExtractorPair pair)
		{
			Log.Verbose("Unloading " + pair.Domain.FriendlyName);
			AppDomain.Unload(pair.Domain);
		}
示例#8
0
 protected virtual void OneExtractionComplete(DomainExtractorPair pair)
 {
 }
 protected override void OneExtractionComplete(DomainExtractorPair pair)
 {
     Log.Verbose("Unloading " + pair.Domain.FriendlyName);
     AppDomain.Unload(pair.Domain);
 }