private IContainer BuildContainer(IConfiguration configuration)
        {
            var pluginScanner = new RuntimePluginScanner(_pluginAssemblies, _pluginTypes, _builderLogProvider);
            var builder       = RhetosContainerBuilder.Create(configuration, _builderLogProvider, pluginScanner);

            var configurationAction = _customContainerConfigurationAction ?? DefaultContainerConfiguration;

            configurationAction(configuration, builder, _configureContainerActions);

            return(builder.Build());
        }
        private ContainerBuilder CreateBuildComponentsContainer()
        {
            var pluginScanner = new PluginScanner(
                _pluginAssemblies,
                _configuration.GetOptions <RhetosBuildEnvironment>(),
                _logProvider,
                _configuration.GetOptions <PluginScannerOptions>());

            var builder = RhetosContainerBuilder.Create(_configuration, _logProvider, pluginScanner);

            builder.Register(context => new PluginInfoCollection(pluginScanner.FindAllPlugins()));
            builder.RegisterModule(new CoreModule());
            builder.RegisterModule(new CorePluginsModule());
            builder.RegisterModule(new BuildModule());
            builder.AddRhetosPluginModules();
            builder.RegisterType <NullUserInfo>().As <IUserInfo>(); // Override runtime IUserInfo plugins. This container should not execute the application's business features.
            builder.RegisterInstance(_installedPackages);
            return(builder);
        }