Example #1
0
        public Startup(
            IHostingEnvironment hostingEnvironment,
            IApplicationEnvironment applicationEnvironment,
            IAssemblyLoaderContainer assemblyLoaderContainer,
            IAssemblyLoadContextAccessor assemblyLoadContextAccessor,
            ILibraryManager libraryManager
            )
        {
            HostingEnvironment          = hostingEnvironment;
            ApplicationBasePath         = applicationEnvironment.ApplicationBasePath;
            AssemblyLoaderContainer     = assemblyLoaderContainer;
            AssemblyLoadContextAccessor = assemblyLoadContextAccessor;
            LibraryManager = libraryManager;

            IConfigurationBuilder configurationBuilder = new ConfigurationBuilder()
                                                         .AddJsonFile("appsettings.json")
                                                         .AddJsonFile($"appsettings.{hostingEnvironment.EnvironmentName}.json", optional: true);


            if (hostingEnvironment.IsDevelopment())
            {
                // For more details on using the user secret store see http://go.microsoft.com/fwlink/?LinkID=532709
                // Good documentation here https://docs.asp.net/en/latest/security/app-secrets.html
                configurationBuilder.AddUserSecrets();

                // This will push telemetry data through Application Insights pipeline faster, allowing you to view results immediately.
                configurationBuilder.AddApplicationInsightsSettings(developerMode: true);
            }


            configurationBuilder.AddEnvironmentVariables();

            Configuration = configurationBuilder.Build();
        }
Example #2
0
 public static PlatformServices Create(
     PlatformServices basePlatformServices,
     IApplicationEnvironment application   = null,
     IRuntimeEnvironment runtime           = null,
     IAssemblyLoaderContainer container    = null,
     IAssemblyLoadContextAccessor accessor = null,
     ILibraryManager libraryManager        = null)
 {
     if (basePlatformServices == null)
     {
         return(new DefaultPlatformServices(
                    application,
                    runtime,
                    container,
                    accessor,
                    libraryManager
                    ));
     }
     return(new DefaultPlatformServices(
                application ?? basePlatformServices.Application,
                runtime ?? basePlatformServices.Runtime,
                container ?? basePlatformServices.AssemblyLoaderContainer,
                accessor ?? basePlatformServices.AssemblyLoadContextAccessor,
                libraryManager ?? basePlatformServices.LibraryManager
                ));
 }
Example #3
0
 public Program(IAssemblyLoaderContainer container, IApplicationEnvironment environment, IAssemblyLoadContextAccessor loadContextAcessor, IServiceProvider serviceProvider)
 {
     _container           = container;
     _environment         = environment;
     _serviceProvider     = serviceProvider;
     _loadContextAccessor = loadContextAcessor;
 }
Example #4
0
 public static PlatformServices Create(
     PlatformServices basePlatformServices,
     IApplicationEnvironment application = null,
     IRuntimeEnvironment runtime = null,
     IAssemblyLoaderContainer container = null,
     IAssemblyLoadContextAccessor accessor = null,
     ILibraryManager libraryManager = null)
 {
     if (basePlatformServices == null)
     {
         return new DefaultPlatformServices(
             application,
             runtime,
             container,
             accessor,
             libraryManager
         );
     }
     return new DefaultPlatformServices(
             application ?? basePlatformServices.Application,
             runtime ?? basePlatformServices.Runtime,
             container ?? basePlatformServices.AssemblyLoaderContainer,
             accessor ?? basePlatformServices.AssemblyLoadContextAccessor,
             libraryManager ?? basePlatformServices.LibraryManager
         );
 }
 public DefaultAssemblyProviderTest(IOrchardLibraryManager libraryManager,
     IServiceProvider serviceProvider,
     IAssemblyLoaderContainer container) {
     _libraryManager = libraryManager;
     _serviceProvider = serviceProvider;
     _loaderContainer = container;
 }
Example #6
0
 public Program(IAssemblyLoaderContainer container, IApplicationEnvironment environment, IAssemblyLoadContextAccessor loadContextAcessor, IServiceProvider serviceProvider)
 {
     _container = container;
     _environment = environment;
     _serviceProvider = serviceProvider;
     _loadContextAccessor = loadContextAcessor;
 }
 public OrchardMvcAssemblyProvider(IOrchardLibraryManager libraryManager,
     IAssemblyLoaderContainer assemblyLoaderContainer,
     IExtensionAssemblyLoader extensionAssemblyLoader) {
     _libraryManager = libraryManager;
     _loaderContainer = assemblyLoaderContainer;
     _extensionAssemblyLoader = extensionAssemblyLoader;
 }
Example #8
0
 public Startup(IHostingEnvironment hostingEnvironment, IApplicationEnvironment applicationEnvironment, IAssemblyLoaderContainer assemblyLoaderContainer, IAssemblyLoadContextAccessor assemblyLoadContextAccessor, ILibraryManager libraryManager)
 {
     this.applicationBasePath         = applicationEnvironment.ApplicationBasePath;
     this.assemblyLoaderContainer     = assemblyLoaderContainer;
     this.assemblyLoadContextAccessor = assemblyLoadContextAccessor;
     this.libraryManager = libraryManager;
 }
Example #9
0
        public Task <int> ExecuteApplication(
            IAssemblyLoaderContainer loaderContainer,
            IAssemblyLoadContextAccessor loadContextAccessor,
            string applicationName,
            string[] programArgs)
        {
            Log.LogInformation($"Launching '{applicationName}' '{string.Join(" ", programArgs)}'");

            var deps = DependencyManager.ResolveDependencies(
                DependencyProviders,
                Project.Name,
                Project.Version,
                TargetFramework);

            // Create loaders
            using (var loaderCleanup = CreateLoaders(loaderContainer, loadContextAccessor, deps))
            {
                // Locate the entry point
                var entryPoint = LocateEntryPoint(applicationName);

                if (Log.IsEnabled(LogLevel.Information))
                {
                    Log.LogInformation($"Executing Entry Point: {entryPoint.GetName().FullName}");
                }
                return(EntryPointExecutor.Execute(entryPoint, programArgs, Services));
            }
        }
 public OrchardMvcAssemblyProvider(IOrchardLibraryManager libraryManager,
     IServiceProvider serviceProvider,
     IAssemblyLoaderContainer assemblyLoaderContainer) {
     _libraryManager = libraryManager;
     _serviceProvider = serviceProvider;
     _loaderContainer = assemblyLoaderContainer;
 }
Example #11
0
 public Startup(IHostingEnvironment hostingEnvironment, IApplicationEnvironment applicationEnvironment, IAssemblyLoaderContainer assemblyLoaderContainer, IAssemblyLoadContextAccessor assemblyLoadContextAccessor, ILibraryManager libraryManager)
 {
   this.applicationBasePath = applicationEnvironment.ApplicationBasePath;
   this.assemblyLoaderContainer = assemblyLoaderContainer;
   this.assemblyLoadContextAccessor = assemblyLoadContextAccessor;
   this.libraryManager = libraryManager;
 }
Example #12
0
        public static IEnumerable <Assembly> GetAssemblies(string path, IAssemblyLoaderContainer assemblyLoaderContainer, IAssemblyLoadContextAccessor assemblyLoadContextAccessor, ILibraryManager libraryManager)
        {
            List <Assembly> assemblies = new List <Assembly>();

            IAssemblyLoadContext assemblyLoadContext = assemblyLoadContextAccessor.Default;

            using (assemblyLoaderContainer.AddLoader(new DirectoryAssemblyLoader(path, assemblyLoadContext)))
            {
                foreach (string extensionPath in Directory.EnumerateFiles(path, "*.dll"))
                {
                    string extensionFilename = Path.GetFileNameWithoutExtension(extensionPath);

                    assemblies.Add(assemblyLoadContext.Load(extensionFilename));
                }
            }

            // We must not load all of the assemblies
            foreach (Library library in libraryManager.GetLibraries())
            {
                if (AssemblyManager.IsCandidateLibrary(libraryManager, library))
                {
                    assemblies.AddRange(library.Assemblies.Select(an => assemblyLoadContext.Load(an)));
                }
            }

            return(assemblies);
        }
 public DefaultAssemblyProviderTest(IOrchardLibraryManager libraryManager,
                                    IServiceProvider serviceProvider,
                                    IAssemblyLoaderContainer container)
 {
     _libraryManager  = libraryManager;
     _serviceProvider = serviceProvider;
     _loaderContainer = container;
 }
Example #14
0
 public Program(IAssemblyLoaderContainer container,
                IAssemblyLoadContextAccessor accessor,
                IApplicationShutdown shutdown)
 {
     _loaderContainer = container;
     _loadContextAccessor = accessor;
     _shutdown = shutdown;
 }
Example #15
0
        public Startup(IHostingEnvironment env, IAssemblyLoaderContainer container,
					   IAssemblyLoadContextAccessor accessor, ILibraryManager libraryManager)
        {
            _env = env;
            _loaderContainer = container;
            _loadContextAccessor = accessor;
            _libraryManager = libraryManager;
        }
 public OrchardMvcAssemblyProvider(IOrchardLibraryManager libraryManager,
                                   IServiceProvider serviceProvider,
                                   IAssemblyLoaderContainer assemblyLoaderContainer)
 {
     _libraryManager  = libraryManager;
     _serviceProvider = serviceProvider;
     _loaderContainer = assemblyLoaderContainer;
 }
Example #17
0
 public OrchardMvcAssemblyProvider(IOrchardLibraryManager libraryManager,
                                   IAssemblyLoaderContainer assemblyLoaderContainer,
                                   IExtensionAssemblyLoader extensionAssemblyLoader)
 {
     _libraryManager          = libraryManager;
     _loaderContainer         = assemblyLoaderContainer;
     _extensionAssemblyLoader = extensionAssemblyLoader;
 }
Example #18
0
    public Startup(IHostingEnvironment hostingEnvironment, IApplicationEnvironment applicationEnvironment, IAssemblyLoaderContainer assemblyLoaderContainer, IAssemblyLoadContextAccessor assemblyLoadContextAccessor, ILibraryManager libraryManager)
      : base(hostingEnvironment, applicationEnvironment, assemblyLoaderContainer, assemblyLoadContextAccessor, libraryManager)
    {
      IConfigurationBuilder configurationBuilder = new ConfigurationBuilder()
        .AddJsonFile("config.json");

      this.configurationRoot = configurationBuilder.Build();
    }
Example #19
0
 public Startup(IHostingEnvironment env, IAssemblyLoaderContainer container,
                IAssemblyLoadContextAccessor accessor, ILibraryManager libraryManager)
 {
     _env                 = env;
     _loaderContainer     = container;
     _loadContextAccessor = accessor;
     _libraryManager      = libraryManager;
 }
Example #20
0
 public DirectoryAssemblyProvider(
     IFileProvider fileProvider,
     IAssemblyLoadContextAccessor loadContextAccessor,
     IAssemblyLoaderContainer assemblyLoaderContainer)
 {
     _fileProvider            = fileProvider;
     _loadContextAccessor     = loadContextAccessor;
     _assemblyLoaderContainer = assemblyLoaderContainer;
 }
 public PluginDirectoryAssemblyProvider(
     IHostingEnvironment hostEnvironment,
     IAssemblyLoadContextAccessor loadContextAccessor,
     IAssemblyLoaderContainer assemblyLoaderContainer)
 {
     this.hostEnvironment         = hostEnvironment;
     this.loadContextAccessor     = loadContextAccessor;
     this.assemblyLoaderContainer = assemblyLoaderContainer;
 }
 public PluginAssemblyProvider(IFileProvider fileProvider, ILoggerFactory loggerFactory,
     IAssemblyLoadContextAccessor loadContextAccessor, IAssemblyLoaderContainer assemblyLoaderContainer)
 {
     _logger = loggerFactory.CreateLogger<PluginAssemblyProvider>();
     _fileProvider = fileProvider;
     _loadContextAccessor = loadContextAccessor;
     _assemblyLoaderContainer = assemblyLoaderContainer;
     _candidates = new Lazy<IEnumerable<Assembly>>(FindPluginAssemblies);
 }
 public DynamicExtensionLoader(
     IVirtualPathProvider virtualPathProvider,
     IServiceProvider serviceProvider,
     IAssemblyLoaderContainer container)
 {
     _virtualPathProvider = virtualPathProvider;
     _serviceProvider = serviceProvider;
     _loaderContainer = container;
 }
 public PluginAssemblyProvider(IFileProvider fileProvider, ILoggerFactory loggerFactory,
                               IAssemblyLoadContextAccessor loadContextAccessor, IAssemblyLoaderContainer assemblyLoaderContainer)
 {
     _logger                  = loggerFactory.CreateLogger <PluginAssemblyProvider>();
     _fileProvider            = fileProvider;
     _loadContextAccessor     = loadContextAccessor;
     _assemblyLoaderContainer = assemblyLoaderContainer;
     _candidates              = new Lazy <IEnumerable <Assembly> >(FindPluginAssemblies);
 }
Example #25
0
 public CoreExtensionLoader(
     IVirtualPathProvider virtualPathProvider,
     IServiceProvider serviceProvider,
     IAssemblyLoaderContainer container)
 {
     _virtualPathProvider = virtualPathProvider;
     _serviceProvider     = serviceProvider;
     _loaderContainer     = container;
 }
Example #26
0
 public DynamicExtensionLoader(
     IVirtualPathProvider virtualPathProvider,
     IAssemblyLoaderContainer container,
     IExtensionAssemblyLoader extensionAssemblyLoader)
 {
     _virtualPathProvider = virtualPathProvider;
     _loaderContainer = container;
     _extensionAssemblyLoader = extensionAssemblyLoader;
 }
 public DynamicExtensionLoader(
     IVirtualPathProvider virtualPathProvider,
     IAssemblyLoaderContainer container,
     IExtensionAssemblyLoader extensionAssemblyLoader)
 {
     _virtualPathProvider     = virtualPathProvider;
     _loaderContainer         = container;
     _extensionAssemblyLoader = extensionAssemblyLoader;
 }
Example #28
0
 public CoreExtensionLoader(
     IVirtualPathProvider virtualPathProvider,
     IServiceProvider serviceProvider,
     IAssemblyLoaderContainer container,
     IExtensionAssemblyLoader extensionAssemblyLoader)
 {
     _virtualPathProvider = virtualPathProvider;
     _serviceProvider = serviceProvider;
     _loaderContainer = container;
     _extensionAssemblyLoader = extensionAssemblyLoader;
 }
Example #29
0
 public GoofyComponentsAssembliesProvider(IComponentsDirectoryPathProvider componentsPathProvider,
                                          IAssemblyLoaderContainer assemblyLoaderContainer,
                                          IAssemblyLoadContextAccessor assemblyLoadContextAccessor,
                                          ILogger <GoofyComponentsAssembliesProvider> logger
                                          )
 {
     _componentsPathProvider      = componentsPathProvider;
     _assemblyLoaderContainer     = assemblyLoaderContainer;
     _assemblyLoadContextAccessor = assemblyLoadContextAccessor;
     _logger = logger;
 }
Example #30
0
        public BuildManager(IServiceProvider hostServices, BuildOptions buildOptions)
        {
            _hostServices            = hostServices;
            _buildOptions            = buildOptions;
            _buildOptions.ProjectDir = Normalize(buildOptions.ProjectDir);

            _applicationEnvironment = (IApplicationEnvironment)hostServices.GetService(typeof(IApplicationEnvironment));
            _loaderContainer        = (IAssemblyLoaderContainer)hostServices.GetService(typeof(IAssemblyLoaderContainer));

            ScriptExecutor = new ScriptExecutor();
        }
 public DefaultExtensionLoader(
     IVirtualPathProvider virtualPathProvider,
     IServiceProvider serviceProvider,
     IAssemblyLoaderContainer container,
     ILogger logger)
 {
     _virtualPathProvider = virtualPathProvider;
     _serviceProvider     = serviceProvider;
     _loaderContainer     = container;
     _logger = logger;
 }
Example #32
0
 public Program(
     IApplicationEnvironment applicationEnvironment,
     IAssemblyLoaderContainer assemblyLoaderContainer,
     IAssemblyLoadContextAccessor assemblyLoadContextAccessor,
     ILibraryManager libraryManager)
 {
     Services.ApplicationEnvironment = applicationEnvironment;
     Services.AssemblyLoaderContainer = assemblyLoaderContainer;
     Services.AssemblyLoadContextAccessor = assemblyLoadContextAccessor;
     Services.LibraryManager = libraryManager;
 }
Example #33
0
 public CoreExtensionLoader(
     IHostEnvironment hostEnvironment,
     IAssemblyLoaderContainer container,
     IExtensionAssemblyLoader extensionAssemblyLoader,
     ILoggerFactory loggerFactory)
 {
     _hostEnvironment         = hostEnvironment;
     _loaderContainer         = container;
     _extensionAssemblyLoader = extensionAssemblyLoader;
     _logger = loggerFactory.CreateLogger <CoreExtensionLoader>();
 }
Example #34
0
 public CoreExtensionLoader(
     IHostEnvironment hostEnvironment,
     IAssemblyLoaderContainer container,
     IExtensionAssemblyLoader extensionAssemblyLoader,
     ILogger <CoreExtensionLoader> logger)
 {
     _hostEnvironment         = hostEnvironment;
     _loaderContainer         = container;
     _extensionAssemblyLoader = extensionAssemblyLoader;
     _logger = logger;
 }
Example #35
0
 public AssemblyCache(ILibraryManager manager,
     IAssemblyLoadContextAccessor accessor,
     IAssemblyLoaderContainer container,
     IApplicationEnvironment environment)
 {
     _libraryManager = manager;
     _environment = environment;
     _loadContext = accessor.GetLoadContext(typeof (Program).GetTypeInfo().Assembly);
     Loader = new DirectoryLookupAssemblyLoader(_loadContext);
     _loaderRegistration = container.AddLoader(Loader);
 }
Example #36
0
 public Program(
     IApplicationEnvironment applicationEnvironment,
     IAssemblyLoaderContainer assemblyLoaderContainer,
     IAssemblyLoadContextAccessor assemblyLoadContextAccessor,
     ILibraryManager libraryManager)
 {
     Services.ApplicationEnvironment      = applicationEnvironment;
     Services.AssemblyLoaderContainer     = assemblyLoaderContainer;
     Services.AssemblyLoadContextAccessor = assemblyLoadContextAccessor;
     Services.LibraryManager = libraryManager;
 }
Example #37
0
 internal DefaultPlatformServices(
     IApplicationEnvironment application,
     IRuntimeEnvironment runtime,
     IAssemblyLoaderContainer container,
     IAssemblyLoadContextAccessor accessor,
     ILibraryManager libraryManager)
 {
     Application = application;
     Runtime = runtime;
     AssemblyLoaderContainer = container;
     AssemblyLoadContextAccessor = accessor;
     LibraryManager = libraryManager;
 }
Example #38
0
 internal DefaultPlatformServices(
     IApplicationEnvironment application,
     IRuntimeEnvironment runtime,
     IAssemblyLoaderContainer container,
     IAssemblyLoadContextAccessor accessor,
     ILibraryManager libraryManager)
 {
     Application                 = application;
     Runtime                     = runtime;
     AssemblyLoaderContainer     = container;
     AssemblyLoadContextAccessor = accessor;
     LibraryManager              = libraryManager;
 }
Example #39
0
 public CoreExtensionLoader(
     IHostEnvironment hostEnvironment,
     IAssemblyLoaderContainer container,
     IExtensionAssemblyLoader extensionAssemblyLoader,
     IOrchardFileSystem fileSystem,
     ILogger <CoreExtensionLoader> logger)
 {
     _hostEnvironment         = hostEnvironment;
     _loaderContainer         = container;
     _extensionAssemblyLoader = extensionAssemblyLoader;
     _fileSystem = fileSystem;
     _logger     = logger;
 }
Example #40
0
 public DynamicExtensionLoader(
     IOptions <ExtensionHarvestingOptions> optionsAccessor,
     IHostEnvironment hostEnvironment,
     IAssemblyLoaderContainer container,
     IExtensionAssemblyLoader extensionAssemblyLoader,
     ILogger <DynamicExtensionLoader> logger)
 {
     ExtensionsSearchPaths    = optionsAccessor.Value.ModuleLocationExpanders.SelectMany(x => x.SearchPaths).ToArray();
     _hostEnvironment         = hostEnvironment;
     _loaderContainer         = container;
     _extensionAssemblyLoader = extensionAssemblyLoader;
     _logger = logger;
 }
Example #41
0
 public Program(
     IAssemblyLoaderContainer container,
     IApplicationEnvironment environment,
     IServiceProvider services,
     IAssemblyLoadContextFactory loadContextFactory,
     IAssemblyLoadContextAccessor loadContextAccessor,
     IFrameworkReferenceResolver referenceResolver)
 {
     _container                  = container;
     _environment                = environment;
     _services                   = services;
     _loadContextFactory         = loadContextFactory;
     _loadContextAccessor        = loadContextAccessor;
     _frameworkReferenceResolver = referenceResolver;
 }
        public Startup(IHostingEnvironment hostingEnvironment,
            IApplicationEnvironment applicationEnvironment,
            IAssemblyLoaderContainer assemblyLoaderContainer,
            IAssemblyLoadContextAccessor assemblyLoadContextAccessor)
        {
            _assemblyLoadContextAccessor = assemblyLoadContextAccessor;
            _assemblyLoaderContainer = assemblyLoaderContainer;
            ApplicationBasePath = applicationEnvironment.ApplicationBasePath;

            // Setup configuration sources.
            var builder = new ConfigurationBuilder()
                .SetBasePath(applicationEnvironment.ApplicationBasePath)
                .AddJsonFile("appsettings.json")
                .AddEnvironmentVariables();
            Configuration = builder.Build();
        }
Example #43
0
        public IDisposable AddLoaders(IAssemblyLoaderContainer container)
        {
            var disposables = new List<IDisposable>();
            foreach (var loader in _loaders)
            {
                disposables.Add(container.AddLoader(loader));
            }

            return new DisposableAction(() =>
            {
                foreach (var d in Enumerable.Reverse(disposables))
                {
                    d.Dispose();
                }
            });
        }
Example #44
0
        public IDisposable AddLoaders(IAssemblyLoaderContainer container)
        {
            var disposables = new List <IDisposable>();

            foreach (var loader in _loaders)
            {
                disposables.Add(container.AddLoader(loader));
            }

            return(new DisposableAction(() =>
            {
                foreach (var d in Enumerable.Reverse(disposables))
                {
                    d.Dispose();
                }
            }));
        }
Example #45
0
        private bool RunTestAssembly(TestOptions options, string testTarget, IAssemblyLoaderContainer container, IServiceProvider services)
        {
            bool success = true;

            testTarget = Path.GetFullPath(testTarget);
            var applicationDir  = Directory.Exists(testTarget) ? testTarget : Path.GetDirectoryName(testTarget);
            var applicationName = Directory.Exists(testTarget) ? Path.GetFileName(testTarget) : Path.GetFileNameWithoutExtension(testTarget);

            var hostOptions = new DefaultHostOptions
            {
                WatchFiles               = false,
                PackageDirectory         = options.PackageDirectory,
                TargetFramework          = _environment.RuntimeFramework,
                Configuration            = options.Configuration,
                ApplicationBaseDirectory = applicationDir,
                CompilationServerPort    = options.CompilationServerPort
            };

            using (var host = new DefaultHost(hostOptions, services))
                using (host.AddLoaders(container))
                {
                    host.Initialize();
                    var libraryManager = (ILibraryManager)host.ServiceProvider.GetService(typeof(ILibraryManager));
                    var assemblies     = libraryManager.GetLibraryInformation(applicationName).LoadableAssemblies.Select(Assembly.Load);

                    foreach (var assembly in assemblies)
                    {
                        using (var framework = new Xunit2(new NullSourceInformationProvider(), assembly.GetName().Name))
                        {
                            switch (options.RunKind)
                            {
                            case RunKind.List:
                                DiscoverTests(options, framework, services);
                                break;

                            default:
                                success = RunTests(options, framework, services) && success;
                                break;
                            }
                        }
                    }
                }

            return(success);
        }
Example #46
0
        public static IEnumerable <Assembly> LoadAssemblies(string path, IAssemblyLoaderContainer assemblyLoaderContainer, IAssemblyLoadContextAccessor assemblyLoadContextAccessor)
        {
            List <Assembly> assemblies = new List <Assembly>();

            IAssemblyLoadContext assemblyLoadContext = assemblyLoadContextAccessor.Default;

            using (assemblyLoaderContainer.AddLoader(new DirectoryAssemblyLoader(path, assemblyLoadContext)))
            {
                foreach (string extensionPath in Directory.EnumerateFiles(path, "*.dll"))
                {
                    string extensionFilename = Path.GetFileNameWithoutExtension(extensionPath);

                    assemblies.Add(assemblyLoadContext.Load(extensionFilename));
                }
            }

            return(assemblies);
        }
    public static IEnumerable<Assembly> LoadAssemblies(string path, IAssemblyLoaderContainer assemblyLoaderContainer, IAssemblyLoadContextAccessor assemblyLoadContextAccessor)
    {
      List<Assembly> assemblies = new List<Assembly>();

      IAssemblyLoadContext assemblyLoadContext = assemblyLoadContextAccessor.Default;

      using (assemblyLoaderContainer.AddLoader(new DirectoryAssemblyLoader(path, assemblyLoadContext)))
      {
        foreach (string extensionPath in Directory.EnumerateFiles(path, "*.dll"))
        {
          string extensionFilename = Path.GetFileNameWithoutExtension(extensionPath);

          assemblies.Add(assemblyLoadContext.Load(extensionFilename));
        }
      }

      return assemblies;
    }
Example #48
0
        public Program(IApplicationEnvironment app,
                       IRuntimeEnvironment runtime,
                       IRuntimeOptions options,
                       ILibraryManager libraryManager,
                       IAssemblyLoaderContainer container,
                       IAssemblyLoadContextAccessor accessor)
        {
            Console.WriteLine("ApplicationName: {0} {1}", app.ApplicationName, app.Version);
            Console.WriteLine("ApplicationBasePath: {0}", app.ApplicationBasePath);
            Console.WriteLine("Framework: {0}", app.RuntimeFramework.FullName);
            Console.WriteLine("Runtime: {0} {1} {2}", runtime.RuntimeType, runtime.RuntimeArchitecture, runtime.RuntimeVersion);
            Console.WriteLine("System: {0} {1}", runtime.OperatingSystem, runtime.OperatingSystemVersion);

            var names = libraryManager
                .GetLibraries()
                .SelectMany(p => p.LoadableAssemblies)
                .Select(p => p.FullName).ToArray();

            var first = names.First();
        }
Example #49
0
        public Program(IApplicationEnvironment app,
                       IRuntimeEnvironment runtime,
                       IRuntimeOptions options,
                       ILibraryManager libraryManager,
                       IAssemblyLoaderContainer container,
                       IAssemblyLoadContextAccessor accessor)
        {
            Console.WriteLine("ApplicationName: {0} {1}", app.ApplicationName, app.Version);
            Console.WriteLine("ApplicationBasePath: {0}", app.ApplicationBasePath);
            Console.WriteLine("Framework: {0}", app.RuntimeFramework.FullName);
            Console.WriteLine("Runtime: {0} {1} {2}", runtime.RuntimeType, runtime.RuntimeArchitecture, runtime.RuntimeVersion);
            Console.WriteLine("System: {0} {1}", runtime.OperatingSystem, runtime.OperatingSystemVersion);

            var names = libraryManager
                        .GetLibraries()
                        .SelectMany(p => p.LoadableAssemblies)
                        .Select(p => p.FullName).ToArray();

            var first = names.First();
        }
Example #50
0
        private IDisposable CreateLoaders(IAssemblyLoaderContainer loaderContainer, IAssemblyLoadContextAccessor loadContextAccessor, DependencyManager dependencies)
        {
            var loaderCleanup = new DisposableList();

            foreach (var loaderFactory in _loaderFactories)
            {
                // Create the loader
                var loader = loaderFactory.Create(
                    TargetFramework,
                    loadContextAccessor,
                    dependencies);

                // Attach it to the container and track it for clean-up
                if (Log.IsEnabled(LogLevel.Verbose))
                {
                    Log.LogVerbose($"Registering {loader.GetType().Name}");
                }
                loaderCleanup.Add(loaderContainer.AddLoader(loader));
            }
            return(loaderCleanup);
        }
Example #51
0
        public Startup(IHostingEnvironment env, IAssemblyLoaderContainer container,
            IAssemblyLoadContextAccessor accessor, ILibraryManager libraryManager, IApplicationEnvironment appEnv)
        {
            _env = env;
            _loaderContainer = container;
            _loadContextAccessor = accessor;
            _libraryManager = libraryManager;
            _appEnv = appEnv;

            var builder = new ConfigurationBuilder(appEnv.ApplicationBasePath)
                /*.AddJsonFile("config.json")
                .AddJsonFile($"config.{env.EnvironmentName}.json", optional: true)*/;

            if (env.IsDevelopment())
            {
                // This reads the configuration keys from the secret store.
                // For more details on using the user secret store see http://go.microsoft.com/fwlink/?LinkID=532709
                //builder.AddUserSecrets();
            }
            builder.AddEnvironmentVariables();
            Configuration = builder.Build();
        }
Example #52
0
        public IDisposable AddLoaders(IAssemblyLoaderContainer container)
        {
            var loaders = new[]
            {
                typeof(ProjectAssemblyLoader),
                typeof(NuGetAssemblyLoader),
            };

            var disposables = new List<IDisposable>();
            foreach (var loaderType in loaders)
            {
                var loader = (IAssemblyLoader)ActivatorUtilities.CreateInstance(ServiceProvider, loaderType);
                disposables.Add(container.AddLoader(loader));
            }

            return new DisposableAction(() =>
            {
                foreach (var d in Enumerable.Reverse(disposables))
                {
                    d.Dispose();
                }
            });
        }
Example #53
0
    public static IEnumerable<Assembly> GetAssemblies(string path, IAssemblyLoaderContainer assemblyLoaderContainer, IAssemblyLoadContextAccessor assemblyLoadContextAccessor, ILibraryManager libraryManager)
    {
      List<Assembly> assemblies = new List<Assembly>();

      IAssemblyLoadContext assemblyLoadContext = assemblyLoadContextAccessor.Default;

      using (assemblyLoaderContainer.AddLoader(new DirectoryAssemblyLoader(path, assemblyLoadContext)))
      {
        foreach (string extensionPath in Directory.EnumerateFiles(path, "*.dll"))
        {
          string extensionFilename = Path.GetFileNameWithoutExtension(extensionPath);

          assemblies.Add(assemblyLoadContext.Load(extensionFilename));
        }
      }

      // We must not load all of the assemblies
      foreach (Library library in libraryManager.GetLibraries())
        if (AssemblyManager.IsCandidateLibrary(libraryManager, library))
          assemblies.AddRange(library.Assemblies.Select(an => assemblyLoadContext.Load(an)));

      return assemblies;
    }
     private List<Assembly> LoadAssembliesFrom(string modulesDirectory,
 IAssemblyLoaderContainer assemblyLoaderContainer,
 IAssemblyLoadContextAccessor loadContextAccessor)
     {
         var assemblies = new List<Assembly>();
         var loadContext = _assemblyLoadContextAccessor.GetLoadContext(typeof(Startup).GetTypeInfo().Assembly);
         using (assemblyLoaderContainer.AddLoader(new DirectoryLoader(modulesDirectory, loadContext)))
         {
             foreach (var modulePath in Directory.EnumerateFiles(modulesDirectory, "*.dll"))
             {
                 var name = Path.GetFileNameWithoutExtension(modulePath);
                 assemblies.Add(loadContext.Load(name));
             }
         }
         return assemblies;
     }
Example #55
0
 public Bootstrapper(IAssemblyLoaderContainer container,
                     IAssemblyLoaderEngine loaderEngine)
 {
     _container = container;
     _loaderEngine = loaderEngine;
 }
Example #56
-1
 public DynamicExtensionLoader(
     IHostEnvironment hostEnvironment,
     IAssemblyLoaderContainer container,
     IExtensionAssemblyLoader extensionAssemblyLoader,
     ILoggerFactory loggerFactory)
 {
     _hostEnvironment = hostEnvironment;
     _loaderContainer = container;
     _extensionAssemblyLoader = extensionAssemblyLoader;
     _logger = loggerFactory.CreateLogger<DynamicExtensionLoader>();
 }
Example #57
-1
 public CoreExtensionLoader(
     IHostEnvironment hostEnvironment,
     IAssemblyLoaderContainer container,
     IExtensionAssemblyLoader extensionAssemblyLoader,
     ILogger<CoreExtensionLoader> logger)
 {
     _hostEnvironment = hostEnvironment;
     _loaderContainer = container;
     _extensionAssemblyLoader = extensionAssemblyLoader;
     _logger = logger;
 }
Example #58
-1
 public DynamicExtensionLoader(
     IOptions<ExtensionHarvestingOptions> optionsAccessor,
     IHostEnvironment hostEnvironment,
     IAssemblyLoaderContainer container,
     IExtensionAssemblyLoader extensionAssemblyLoader,
     ILoggerFactory loggerFactory)
 {
     ExtensionsSearchPaths = optionsAccessor.Value.ModuleLocationExpanders.SelectMany(x => x.SearchPaths).ToArray();
     _hostEnvironment = hostEnvironment;
     _loaderContainer = container;
     _extensionAssemblyLoader = extensionAssemblyLoader;
     _logger = loggerFactory.CreateLogger<DynamicExtensionLoader>();
 }
Example #59
-1
 public CoreExtensionLoader(
     IHostEnvironment hostEnvironment,
     IAssemblyLoaderContainer container,
     IExtensionAssemblyLoader extensionAssemblyLoader,
     IOrchardFileSystem fileSystem,
     ILogger<CoreExtensionLoader> logger)
 {
     _hostEnvironment = hostEnvironment;
     _loaderContainer = container;
     _extensionAssemblyLoader = extensionAssemblyLoader;
     _fileSystem = fileSystem;
     _logger = logger;
 }
 public DynamicExtensionLoader(
     IOptions<ExtensionHarvestingOptions> optionsAccessor,
     IHostEnvironment hostEnvironment,
     IAssemblyLoaderContainer container,
     IExtensionAssemblyLoader extensionAssemblyLoader,
     IOrchardFileSystem fileSystem,
     ILogger<DynamicExtensionLoader> logger)
 {
     ExtensionsSearchPaths = optionsAccessor.Value.ModuleLocationExpanders.SelectMany(x => x.SearchPaths).ToArray();
     _hostEnvironment = hostEnvironment;
     _loaderContainer = container;
     _extensionAssemblyLoader = extensionAssemblyLoader;
     _fileSystem = fileSystem;
     _logger = logger;
 }