protected override void OnStart(string[] args)
        {
            // TODO: 在此处添加代码以启动服务。
            var iCrype     = new EnDeCrype();
            var iniControl = new clsINI(iniPath + @"\SoftwareUpdate.bin");

            //读取配置文件
            iDuration = iCrype.CryptString(iniControl.IniReadValue("ServiceInfo", "Duration"));
            iSavePath = iCrype.CryptString(iniControl.IniReadValue("ServiceInfo", "SavePath"));
            iNotifyME = iCrype.CryptString(iniControl.IniReadValue("ServiceSetting", "NotifyMe")) ==
                        "1";
            iNoBusyUpdate     = iCrype.CryptString(iniControl.IniReadValue("ServiceSetting", "NoBusyUpdate")) == "1";
            iAutoUpdateNotify =
                iCrype.CryptString(iniControl.IniReadValue("ServiceSetting", "AutoUpdateNotify")) == "1";

            //开启服务进行软件更新
        }
Esempio n. 2
0
        private void inConfig(string iPath, ServerType iType, ApproNum iNum, int iPort, CharSet iChar)
        {
            var iIni = new clsINI(iPath + "\\bin\\my.ini");

            //This will effect about 7 values
            switch (iType)
            {
            case ServerType.Server:

                iIni.IniWriteValue("mysqld", "tmp_table_size", "205M");
                iIni.IniWriteValue("mysqld", "myisam_sort_buffer_size", "410M");
                iIni.IniWriteValue("mysqld", "key_buffer_size", "354M");
                iIni.IniWriteValue("mysqld", "innodb_additional_mem_pool_size", "15M");
                iIni.IniWriteValue("mysqld", "innodb_log_buffer_size", "7M");
                iIni.IniWriteValue("mysqld", "innodb_buffer_pool_size", "686M");
                iIni.IniWriteValue("mysqld", "innodb_log_file_size", "343M");
                break;

            case ServerType.Developer:
                //It is the default set of the my.ini setting , so do nothing
                break;

            case ServerType.Dedicated_MySQL_Server:
                iIni.IniWriteValue("mysqld", "tmp_table_size", "369M");
                iIni.IniWriteValue("mysqld", "myisam_sort_buffer_size", "738M");
                iIni.IniWriteValue("mysqld", "key_buffer_size", "641M");
                iIni.IniWriteValue("mysqld", "innodb_additional_mem_pool_size", "26M");
                iIni.IniWriteValue("mysqld", "innodb_log_buffer_size", "13M");
                iIni.IniWriteValue("mysqld", "innodb_buffer_pool_size", "1242M");
                iIni.IniWriteValue("mysqld", "innodb_log_file_size", "621M");
                break;
            }
            if (iNum == ApproNum.OLTP)
            {
                iIni.IniWriteValue("mysqld", "max_connections", "700");
                iIni.IniWriteValue("mysqld", "query_cache_size", "18M");
                iIni.IniWriteValue("mysqld", "table_cache", "1400");
                iIni.IniWriteValue("mysqld", "tmp_table_size", "16M");
                iIni.IniWriteValue("mysqld", "thread_cache_size", "34");
            }
            switch (iChar)
            {
            case CharSet.big5:
                iIni.IniWriteValue("mysql", "default-character-set", "big5");
                iIni.IniWriteValue("mysqld", "character-set-server", "big5");
                break;

            case CharSet.utf8:
                //default value
                break;

            case CharSet.gbk:
                iIni.IniWriteValue("mysql", "default-character-set", "gbk");
                iIni.IniWriteValue("mysqld", "character-set-server", "gbk");
                break;

            case CharSet.Latin1:
                iIni.IniWriteValue("mysql", "default-character-set", "latin1");
                iIni.IniWriteValue("mysqld", "character-set-server", "latin1");
                break;
            }
            iIni.IniWriteValue("mysqld", "port", iPort.ToString(CultureInfo.InvariantCulture));
        }
Esempio n. 3
0
        private void frmInstall_Shown(object sender, EventArgs e)
        {
            lblText.Text = DateTime.Now.Hour.ToString("00") + Resources.frmInstall_installBaseSQL__ +
                           DateTime.Now.Minute.ToString("00") + Resources.frmInstall_installBaseSQL______ +
                           Resources.frmInstall_frmInstall_Shown_系统初始化结束;
            prbMain.Value = prbMain.Value + 1;
            lblText.Text  = DateTime.Now.Hour.ToString("00") + Resources.frmInstall_installBaseSQL__ +
                            DateTime.Now.Minute.ToString("00") + Resources.frmInstall_installBaseSQL______ +
                            Resources.frmInstall_frmInstall_Shown_请等待完成;
            prbMain.Value = prbMain.Value + 1;
            lblText.Text  = DateTime.Now.Hour.ToString("00") + Resources.frmInstall_installBaseSQL__ +
                            DateTime.Now.Minute.ToString("00") + Resources.frmInstall_installBaseSQL______ +
                            Resources.frmInstall_frmInstall_Shown_正在判别操作系统版本_;
            prbMain.Value = prbMain.Value + 1;

            installBaseSQL();

            Stream sm;

            if (Distinguish64or32System() == "32")
            {
                //32位
                lblText.Text = DateTime.Now.Hour.ToString("00") + Resources.frmInstall_installBaseSQL__ +
                               DateTime.Now.Minute.ToString("00") + Resources.frmInstall_installBaseSQL______ +
                               Resources.frmInstall_frmInstall_Shown_正在为32位系统初始化_;
                sm = Assembly.GetEntryAssembly().GetManifestResourceStream("DataAssistant.X86.7z");
            }
            else
            {
                //64位
                lblText.Text = DateTime.Now.Hour.ToString("00") + Resources.frmInstall_installBaseSQL__ +
                               DateTime.Now.Minute.ToString("00") + Resources.frmInstall_installBaseSQL______ +
                               Resources.frmInstall_frmInstall_Shown_正在为64位系统初始化_;
                sm = Assembly.GetEntryAssembly().GetManifestResourceStream("DataAssistant.X64.7z");
            }

            var ext = new SevenZipExtractor(sm);

            for (int i = 0; i < ext.FilesCount; ++i)
            {
                ext.ExtractFiles(Application.StartupPath + @"\core", i);
                prbMain.Value = prbMain.Value + 1;
                Application.DoEvents();
            }

            lblText.Text = DateTime.Now.Hour.ToString("00") + Resources.frmInstall_installBaseSQL__ +
                           DateTime.Now.Minute.ToString("00") + Resources.frmInstall_installBaseSQL______ +
                           Resources.frmInstall_frmInstall_Shown_初始化完毕_等待写入数据文件;
            //////////所有定制文件解压完毕
            prbMain.Value = prbMain.Value + 1;

            sm           = Assembly.GetEntryAssembly().GetManifestResourceStream("DataAssistant.SQLdata.7z");
            lblText.Text = DateTime.Now.Hour.ToString("00") + Resources.frmInstall_installBaseSQL__ +
                           DateTime.Now.Minute.ToString("00") + Resources.frmInstall_installBaseSQL______ +
                           Resources.frmInstall_frmInstall_Shown_正在写入数据文件;
            ext = new SevenZipExtractor(sm);
            for (int i = 0; i < ext.FilesCount; ++i)
            {
                ext.ExtractFiles(Application.StartupPath + @"\core", i);
                prbMain.Value = prbMain.Value + 1;
                Application.DoEvents();
            }
            lblText.Text = DateTime.Now.Hour.ToString("00") + Resources.frmInstall_installBaseSQL__ +
                           DateTime.Now.Minute.ToString("00") + Resources.frmInstall_installBaseSQL______ +
                           Resources.frmInstall_frmInstall_Shown_数据文件写入完毕_等待配置;

            prbMain.Value = prbMain.Value + 1;
            //数据文件写入完毕,下面进行配置
            //先写入my.ini 然后对my.ini进行配置
            sm = Assembly.GetEntryAssembly().GetManifestResourceStream("DataAssistant.my.ini");
            var sr = new StreamReader(sm);
            var sw = new StreamWriter(Application.StartupPath + @"\core\bin\my.ini");

            sw.Write(sr.ReadToEnd());
            sw.Flush();
            sw.Close();
            sr.Close();

            var iniControl = new clsINI(Application.StartupPath + @"\core\bin\my.ini");

            iniControl.IniWriteValue("mysqld", "basedir",
                                     "\"" + (Application.StartupPath + @"\core\").Replace(@"\", @"/") + "\"");

            lblText.Text = DateTime.Now.Hour.ToString("00") + Resources.frmInstall_installBaseSQL__ +
                           DateTime.Now.Minute.ToString("00") + Resources.frmInstall_installBaseSQL______ +
                           Resources.frmInstall_frmInstall_Shown_配置完毕;
            prbMain.Value = prbMain.Value + 1;
            //然后写入start.bat 用于启动sql 当然 这个只是预设.现在没考虑如何实现数据库
            sm = Assembly.GetEntryAssembly().GetManifestResourceStream("DataAssistant.start.bat");
            var sr1 = new StreamReader(sm);
            var sw1 = new StreamWriter(Application.StartupPath + @"\core\start.bat");

            sw1.Write(sr1.ReadToEnd());
            sw1.Flush();
            sw1.Close();
            sr1.Close();
            prbMain.Value = prbMain.Value + 1;
            lblText.Text  = DateTime.Now.Hour.ToString("00") + Resources.frmInstall_installBaseSQL__ +
                            DateTime.Now.Minute.ToString("00") + Resources.frmInstall_installBaseSQL______ +
                            Resources.frmInstall_frmInstall_Shown_所有操作全部完毕;
            MessageBox.Show(Resources.frmInstall_frmInstall_Shown_所有操作全部完毕, Application.ProductName,
                            MessageBoxButtons.OK);
            Application.Exit();
        }
Esempio n. 4
0
        /// <summary>
        ///   Install Mysql X86/X64 will auto detected and install.
        /// </summary>
        /// <param name="iPath"> The path you want to install </param>
        /// <param name="iType"> Database Mechine Type, Developer is enough </param>
        /// <param name="iNum"> OLAP/OLTP </param>
        /// <param name="iPort"> Listening port </param>
        /// <param name="iChar"> character-set-server </param>
        public void Install(string iPath, ServerType iType = ServerType.Developer, ApproNum iNum = ApproNum.OLAP,
                            int iPort = 9998, CharSet iChar = CharSet.Latin1)
        {
            //Deal with "\" for some baby programmer:)
            if (iPath.EndsWith("\\"))
            {
                iPath = iPath.Substring(0, iPath.Length - 1);
            }
            var i7Z = new clsSevenZip();

            //Need Install as following list
            //1. CORE.PART
            //2. 32.PART
            //3. 64.PART
            //4. my.ini
            i7Z.Initialize();
            //First Copy files from the resources
            byte[] iSave = Resources.core;
            var    fsObj = new FileStream(Environment.CurrentDirectory + "\\core.part", FileMode.Create);

            fsObj.Write(iSave, 0, iSave.Length);
            fsObj.Close();
            //Call clsSevenZip

            i7Z.ExtractFile(Environment.CurrentDirectory + "\\core.part", iPath);
            File.Delete(Environment.CurrentDirectory + "\\core.part");
            //Detect the system version 32/64
            if (!clsOS.InternalCheckIsWow64())
            {
                byte[] iSave32 = Resources._32;
                var    fsObj32 = new FileStream(Environment.CurrentDirectory + "\\32.part", FileMode.Create);
                fsObj32.Write(iSave32, 0, iSave32.Length);
                fsObj32.Close();
                i7Z.ExtractFile(Environment.CurrentDirectory + "\\32.part", iPath);
                File.Delete(Environment.CurrentDirectory + "\\32.part");

                byte[] iSave32a = Resources.mysqladmin32;
                var    fsObj32a = new FileStream(Environment.CurrentDirectory + "\\mysqladmin32.part", FileMode.Create);
                fsObj32a.Write(iSave32a, 0, iSave32a.Length);
                fsObj32a.Close();
                i7Z.ExtractFile(Environment.CurrentDirectory + "\\mysqladmin32.part", iPath + "\\bin");
                File.Delete(Environment.CurrentDirectory + "\\mysqladmin32.part");
            }
            else
            {
                byte[] iSave64 = Resources._64;
                var    fsObj64 = new FileStream(Environment.CurrentDirectory + "\\64.part", FileMode.Create);
                fsObj64.Write(iSave64, 0, iSave64.Length);
                fsObj64.Close();
                i7Z.ExtractFile(Environment.CurrentDirectory + "\\64.part", iPath);
                File.Delete(Environment.CurrentDirectory + "\\64.part");

                byte[] iSave64a = Resources.mysqladmin64;
                var    fsObj64a = new FileStream(Environment.CurrentDirectory + "\\mysqladmin64.part", FileMode.Create);
                fsObj64a.Write(iSave64a, 0, iSave64a.Length);
                fsObj64a.Close();
                i7Z.ExtractFile(Environment.CurrentDirectory + "\\mysqladmin64.part", iPath + "\\bin");
                File.Delete(Environment.CurrentDirectory + "\\mysqladmin64.part");
            }
            i7Z.Release();
            //Release my.ini to config Mysql
            byte[] iSavei = Resources.my;
            var    fsObji = new FileStream(iPath + "\\bin\\my.ini", FileMode.Create);

            fsObji.Write(iSavei, 0, iSavei.Length);
            fsObji.Close();
            //And We need config default value to make no error.
            var iIni = new clsINI(iPath + "\\bin\\my.ini");

            iPath = iPath.Replace("\\", "/");
            iIni.IniWriteValue("mysqld", "basedir", "\"" + iPath + "/\"");
            iIni.IniWriteValue("mysqld", "datadir", "\"" + iPath + "/Data/\"");
            //Need config detailed.
            inConfig(iPath, iType, iNum, iPort, iChar);
            //All finished
            if (InstallComplete != null)
            {
                InstallComplete();
            }
        }