public static void BindCore(this LightweightKernel kernel)
 {
     kernel.Bind<IActionDispatch, ActionDispatch>();
     kernel.Bind<IHostPlatformDetector, HostPlatformDetector>();
     kernel.Bind<ILogger, Logger>();
     kernel.Bind<IWorkingDirectoryProvider, WorkingDirectoryProvider>();
     kernel.BindAndKeepInstance<IModuleUtilities, ModuleUtilities>();
     kernel.BindAndKeepInstance<IModuleExecution, ModuleExecution>();
     kernel.BindAndKeepInstance<IFeatureManager, FeatureManager>();
 }
        public static void BindPackages(this LightweightKernel kernel)
        {
            kernel.Bind<IAutomaticModulePackager, AutomaticModulePackager>();
            kernel.Bind<IDeduplicator, Deduplicator>();
            kernel.Bind<IPackageManager, PackageManager>();
            kernel.Bind<IPackageLookup, PackageLookup>();
            kernel.Bind<IPackageCacheConfiguration, PackageCacheConfiguration>();
            kernel.BindAndKeepInstance<IPackageRedirector, PackageRedirector>();
            kernel.Bind<IPackageLocator, PackageLocator>();
            kernel.Bind<IProjectOutputPathCalculator, ProjectOutputPathCalculator>();
            kernel.Bind<IPackageGlobalTool, PackageGlobalTool>();
            kernel.Bind<IProgressiveWebOperation, ProgressiveWebOperation>();
            kernel.Bind<IPackageCreator, PackageCreator>();
            kernel.Bind<IGetRecursiveUtilitiesInPath, GetRecursiveUtilitiesInPath>();
            kernel.Bind<IPackageUrlParser, PackageUrlParser>();
            kernel.Bind<IKnownToolProvider, KnownToolProvider>();
            kernel.Bind<IPackageNameLookup, PackageNameLookup>();
            kernel.Bind<IProjectTemplateApplier, ProjectTemplateApplier>();

            kernel.Bind<IPackageProtocol, GitPackageProtocol>();
            kernel.Bind<IPackageProtocol, LocalTemplatePackageProtocol>();
            kernel.Bind<IPackageProtocol, LocalTemplateGitPackageProtocol>();
            kernel.Bind<IPackageProtocol, NuGetPackageProtocol>();
            kernel.Bind<IPackageProtocol, ProtobuildPackageProtocol>();
            kernel.Bind<IPackageProtocol, LocalProtobuildPackageProtocol>();
        }