private function InstallBundle($bundle)
    {
        $manifest = ClassFinder::Manifest($bundle);
        foreach ($manifest->Dependencies() as $dependency)
        {
            if (!$this->InstallDependency($dependency))
            {
                return false;
            }
        }
        $bundleInstaller = new BundleInstaller($manifest, $this->connection, $this->InstalledVersion($bundle));
        $result = true;
        try
        {
            $bundleInstaller->ExecuteSql();
            $this->installedBundles[$bundle] = $manifest->Version();
        }
        catch (\Exception $exc)
        {
            $this->failedBundles[$bundle] = $exc->getMessage();
            $result = false;
        }
        $this->ReportProgress();
        return $result;
    }