Ejemplo n.º 1
0
        private static bool IsAlienDbTaggedParameter(DeploymentWellKnownTag dbTag, DeploymentParameterWPI parameter)
        {
            return(parameter.HasTags((long)databaseEngineTags) && !parameter.HasTags((long)dbTag));

/*
 #pragma warning disable 612,618
 *          return (parameter.Tags & databaseEngineTags) != DeploymentWellKnownTag.None
 *                 &&
 *                 (parameter.Tags & dbTag) == DeploymentWellKnownTag.None;
 #pragma warning restore 612,618
 */
        }
Ejemplo n.º 2
0
        private static void RemoveUnusedProviders(MSDeployPackage msDeployPackage, DeploymentWellKnownTag dbTag)
        {
            List <string> providersToRemove = new List <string>();

            switch (dbTag)
            {
            case DeploymentWellKnownTag.MySql:
                providersToRemove.Add("dbFullSql");
                providersToRemove.Add("DBSqlite");
                break;

            case DeploymentWellKnownTag.Sql:
                providersToRemove.Add("dbMySql");
                providersToRemove.Add("DBSqlite");
                break;

            case DeploymentWellKnownTag.FlatFile:
                providersToRemove.Add("dbFullSql");
                providersToRemove.Add("DBSqlite");
                providersToRemove.Add("dbMySql");
                break;

            case DeploymentWellKnownTag.SqLite:
                providersToRemove.Add("dbFullSql");
                providersToRemove.Add("dbMySql");
                break;

            case DeploymentWellKnownTag.VistaDB:
                providersToRemove.Add("dbFullSql");
                providersToRemove.Add("DBSqlite");
                providersToRemove.Add("dbMySql");
                break;

            case DeploymentWellKnownTag.SqlCE:
                providersToRemove.Add("dbFullSql");
                providersToRemove.Add("DBSqlite");
                providersToRemove.Add("dbMySql");
                break;

            default:
                break;
            }

            foreach (string provider in providersToRemove)
            {
                msDeployPackage.SkipDirectives.Add(string.Format("objectName={0}", provider));
            }
        }
Ejemplo n.º 3
0
        private static void RemoveUnusedProviders(MSDeployPackage msDeployPackage, DeploymentWellKnownTag dbTag)
        {
            List<string> providersToRemove = new List<string>();

            switch (dbTag)
            {
                case DeploymentWellKnownTag.MySql:
                    providersToRemove.Add("dbFullSql");
                    providersToRemove.Add("DBSqlite");
                    break;
                case DeploymentWellKnownTag.Sql:
                    providersToRemove.Add("dbMySql");
                    providersToRemove.Add("DBSqlite");
                    break;
                case DeploymentWellKnownTag.FlatFile:
                    providersToRemove.Add("dbFullSql");
                    providersToRemove.Add("DBSqlite");
                    providersToRemove.Add("dbMySql");
                    break;
                case DeploymentWellKnownTag.SqLite:
                    providersToRemove.Add("dbFullSql");
                    providersToRemove.Add("dbMySql");
                    break;
                case DeploymentWellKnownTag.VistaDB:
                    providersToRemove.Add("dbFullSql");
                    providersToRemove.Add("DBSqlite");
                    providersToRemove.Add("dbMySql");
                    break;
                case DeploymentWellKnownTag.SqlCE:
                    providersToRemove.Add("dbFullSql");
                    providersToRemove.Add("DBSqlite");
                    providersToRemove.Add("dbMySql");
                    break;
                default:
                    break;
            }

            foreach (string provider in providersToRemove)
            {
                msDeployPackage.SkipDirectives.Add(string.Format("objectName={0}", provider));
            }
        }
Ejemplo n.º 4
0
        public bool InstallApplication(
            string appId,
            List <WpiUpdatedDeploymentParameter> updatedValues,
            string languageId,
            EventHandler <InstallStatusEventArgs> installStatusUpdatedHandler,
            EventHandler <EventArgs> installCompleteHandler,
            out string log,
            out string failedMessage
            )
        {
            Product             app          = GetProduct(appId);
            Installer           appInstaller = GetInstaller(languageId, app);
            WpiAppInstallLogger logger       = new WpiAppInstallLogger();

            /*
             * if (null == _installManager)
             * {
             *  Debugger.Break();
             * }
             */

            if (null != installStatusUpdatedHandler)
            {
                _installManager.InstallerStatusUpdated += installStatusUpdatedHandler;
            }
            _installManager.InstallerStatusUpdated += logger.HanlderInstallerStatusUpdated;

            if (null != installCompleteHandler)
            {
                _installManager.InstallCompleted += installCompleteHandler;
            }
            _installManager.InstallCompleted += logger.HandlerInstallCompleted;

            // set updated parameters
            foreach (WpiUpdatedDeploymentParameter parameter in updatedValues)
            {
                if (!string.IsNullOrEmpty(parameter.Value))
                {
                    appInstaller.MSDeployPackage.SetParameters[parameter.Name] = parameter.Value;
                }
            }

            DeploymentWellKnownTag dbTag = (DeploymentWellKnownTag)GetDbTag(updatedValues);

            // remove parameters with alien db tags
            foreach (DeploymentParameterWPI parameter in appInstaller.MSDeployPackage.DeploymentParameters)
            {
                if (IsAlienDbTaggedParameter(dbTag, parameter))
                {
                    appInstaller.MSDeployPackage.RemoveParameters.Add(parameter.Name);
                }
            }

            // skip alien directives
            RemoveUnusedProviders(appInstaller.MSDeployPackage, dbTag);

            _installCompleted = false;

            _installManager.StartApplicationInstallation();
            while (!_installCompleted)
            {
                Thread.Sleep(1000);
            }

            WriteLog("InstallApplication complete");

            //save logs
            SaveLogDirectory();

            _installCompleted = false;

            log           = logger.GetLog();
            failedMessage = logger.FailedMessage;

            return(!logger.IsFailed);
        }
Ejemplo n.º 5
0
        private static bool IsAlienDbTaggedParameter(DeploymentWellKnownTag dbTag, DeploymentParameterWPI parameter)
        {
            return parameter.HasTags((long)databaseEngineTags) && !parameter.HasTags((long)dbTag);
/*
#pragma warning disable 612,618
            return (parameter.Tags & databaseEngineTags) != DeploymentWellKnownTag.None 
                   && 
                   (parameter.Tags & dbTag) == DeploymentWellKnownTag.None;
#pragma warning restore 612,618
*/
        }