Exemplo n.º 1
0
        void PopulateRootAssemblies()
        {
            var rootAssembly = Assembly.LoadFrom(_configuration.EntryAssemblyPath);

            _rootAssemblies.Add(rootAssembly);

            var assemblyContext = new AssemblyContext(rootAssembly);

            _rootAssemblies.AddRange(assemblyContext.GetReferencedAssemblies());

            _rootAssemblyPaths = _rootAssemblies.Select(_ =>
            {
                var path = string.Empty;
                if (_.CodeBase == null)
                {
                    path = _assemblyPaths.FindBestMatchFor($"{_.GetName().Name}.dll");
                }
                else
                {
                    var uri = new Uri(_.CodeBase);
                    path    = _assemblyPaths.FindBestMatchFor(uri.AbsolutePath);
                }
                return(path);
            });
        }