Ejemplo n.º 1
0
Archivo: FrmMain.cs Proyecto: xchit/X
        private void 检查更新ToolStripMenuItem_Click(Object sender, EventArgs e)
        {
            var cfg = XConfig.Current;

            cfg.LastUpdate = DateTime.Now;
            cfg.Save();

            try
            {
                var root = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
                var up   = new Upgrade();
                up.Log        = XTrace.Log;
                up.Name       = "XCoder";
                up.Server     = cfg.UpdateServer;
                up.UpdatePath = root.CombinePath(up.UpdatePath);
                if (up.Check())
                {
                    up.Download();
                    up.Update();
                }
                else if (up.Links != null && up.Links.Length > 0)
                {
                    MessageBox.Show("没有可用更新!最新{0}".F(up.Links[0].Time), "自动更新");
                }
                else
                {
                    MessageBox.Show("没有可用更新!", "自动更新");
                }
            }
            catch (Exception ex)
            {
                XTrace.WriteException(ex);
                MessageBox.Show("更新失败!" + ex.Message, "自动更新");
            }
        }
Ejemplo n.º 2
0
        static void AutoUpdate()
        {
            //// 稍微等待一下,等主程序执行完成
            //Thread.Sleep(2000);

            // 文件保存配置信息
            var file = "Update.config";
            // 注意路径,避免写入到脚本文件所在路径
            var root = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);

            file = root.CombinePath(file);
            if (File.Exists(file))
            {
                var last = File.ReadAllText(file).ToDateTime();
                // 每天只更新一次
                if (last >= DateTime.Now.Date)
                {
                    return;
                }
            }
            File.WriteAllText(file, DateTime.Now.ToFullString());

            var up = new Upgrade();

            if (Config.Debug)
            {
                up.Log = XTrace.Log;
            }
            up.Name = "XScript";
            //up.Server = "https://git.oschina.net/NewLifeX/XScript";
            //up.Server = "http://www.newlifex.com/showtopic-369.aspx";
            up.Server     = "http://x.newlifex.com";
            up.UpdatePath = root.CombinePath(up.UpdatePath);
            if (up.Check())
            {
                up.Log = XTrace.Log;

                // 从github.com下载需要处理Url
                if (up.Links.Length > 0)
                {
                    var url = up.Links[0].Url;
                    if ((url.Contains("github.com") || url.Contains("git.")) &&
                        url.Contains("/blob/"))
                    {
                        up.Links[0].Url = url.Replace("/blob/", "/raw/");
                    }
                }

                up.Download();
                if (!_CodeFile)
                {
                    up.Update();
                }
                else
                {
                    // 留到脚本执行完成以后自动更新
                    _upgrade = up;
                }
            }
        }
Ejemplo n.º 3
0
        private static void Update(Boolean isAsync)
        {
            if (!isAsync)
            {
                XTrace.WriteLine("自动更新!");
            }
            if (Setting.Current.LastUpdateTime.Date < DateTime.Now.Date)
            {
                Setting.Current.LastUpdateTime = DateTime.Now;

                var root = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
                var up   = new Upgrade
                {
                    Log    = XTrace.Log,
                    Name   = "SmartIot-Scada.ConfigTool",
                    Server = "http://wlw.smartiot.cc/update/SmartIot-Tool.html"
                };
                up.UpdatePath = root.CombinePath(up.UpdatePath);
                if (up.Check())
                {
                    up.Download();
                    if (!isAsync)
                    {
                        up.Update();
                    }
                    else
                    {
                        // 留到执行完成以后自动更新
                        _upgrade = up;
                    }
                }
            }
        }
Ejemplo n.º 4
0
        static void AutoUpdate()
        {
            var set = Setting.Current;

            if (set.LastCheck.AddDays(set.UpdateDays) > DateTime.Now)
            {
                return;
            }

            set.LastCheck = DateTime.Now;
            set.Save();

            // 注意路径,避免写入到脚本文件所在路径
            var root = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);

            var up = new Upgrade();

            if (Config.Debug)
            {
                up.Log = XTrace.Log;
            }
            up.Name = "XScript";
            //up.Server = "https://git.oschina.net/NewLifeX/XScript";
            //up.Server = "http://www.newlifex.com/showtopic-369.aspx";
            //up.Server = "http://x.newlifex.com";
            up.UpdatePath = root.CombinePath(up.UpdatePath);
            if (up.Check())
            {
                up.Log = XTrace.Log;

                // 从github.com下载需要处理Url
                if (up.Links.Length > 0)
                {
                    var url = up.Links[0].Url;
                    if ((url.Contains("github.com") || url.Contains("git.")) &&
                        url.Contains("/blob/"))
                    {
                        up.Links[0].Url = url.Replace("/blob/", "/raw/");
                    }
                }

                up.Download();
                if (!_CodeFile)
                {
                    up.Update();
                }
                else
                {
                    // 留到脚本执行完成以后自动更新
                    _upgrade = up;
                }
            }
        }
Ejemplo n.º 5
0
        static void Update(Boolean isAsync)
        {
            if (!isAsync)
            {
                XTrace.WriteLine("自动更新!");
            }

            var cfg = XConfig.Current;

            if (cfg.LastUpdate.Date < DateTime.Now.Date)
            {
                cfg.LastUpdate = DateTime.Now;

                var root = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
                var up   = new Upgrade();
                up.Log        = XTrace.Log;
                up.Name       = "XCoder";
                up.Server     = cfg.UpdateServer;
                up.UpdatePath = root.CombinePath(up.UpdatePath);
                if (up.Check())
                {
                    up.Download();
                    if (!isAsync)
                    {
                        up.Update();
                    }
                    else
                    {
                        // 留到执行完成以后自动更新
                        _upgrade = up;
                    }
                }
                cfg.Save();
            }

            if (isAsync)
            {
                // 释放T4模版
                var b   = File.Exists("XCoder.tt");
                var txt = Source.GetText("XCoder.tt");
                txt = txt.Replace("{XCoderPath}", AppDomain.CurrentDomain.BaseDirectory);
                File.WriteAllText("XCoder.tt", txt);

                //if (!b) MessageBox.Show("新版本增加XCoder.tt,拷贝到类库项目里面。\r\nVS中修改文件内参数,右键执行自定义工具!", "提示");
            }
        }
Ejemplo n.º 6
0
        static void AutoUpdate()
        {
            //// 稍微等待一下,等主程序执行完成
            //Thread.Sleep(2000);

            // 文件保存配置信息
            var file = "Update.config";
            // 注意路径,避免写入到脚本文件所在路径
            var root = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);

            file = root.CombinePath(file);
            if (File.Exists(file))
            {
                var last = File.ReadAllText(file).ToDateTime();
                // 每天只更新一次
                if (last >= DateTime.Now.Date)
                {
                    return;
                }
            }
            File.WriteAllText(file, DateTime.Now.ToFullString());

            var up = new Upgrade();

            if (Config.Debug)
            {
                up.Log = XTrace.Log;
            }
            up.Name       = "XScript";
            up.Server     = "http://www.newlifex.com/showtopic-369.aspx";
            up.UpdatePath = root.CombinePath(up.UpdatePath);
            if (up.Check())
            {
                up.Download();
                if (!_CodeFile)
                {
                    up.Update();
                }
                else
                {
                    // 留到脚本执行完成以后自动更新
                    _upgrade = up;
                }
            }
        }
Ejemplo n.º 7
0
        private void CheckUpdate(Boolean auto)
        {
            if (auto)
            {
                XTrace.WriteLine("自动更新!");
            }

            var up = new Upgrade();

            up.DeleteBackup(".");

            var cfg = XConfig.Current;

            if (cfg.LastUpdate.Date < DateTime.Now.Date || !auto)
            {
                cfg.LastUpdate = DateTime.Now;
                cfg.Save();

                var root = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
                up.Log        = XTrace.Log;
                up.Name       = "XCoder";
                up.Server     = cfg.UpdateServer;
                up.UpdatePath = root.CombinePath(up.UpdatePath);
                if (up.Check())
                {
                    up.Download();
                    if (!auto || MessageBox.Show($"发现新版本{up.Link.Time},是否更新?", "自动更新", MessageBoxButtons.YesNo) == DialogResult.Yes)
                    {
                        var rs = up.Update();
                        MessageBox.Show("更新" + (rs ? "成功" : "失败"), "自动更新");
                    }
                }
                else if (!auto)
                {
                    if (up.Link != null)
                    {
                        MessageBox.Show($"没有可用更新!最新{up.Link.Time}", "自动更新");
                    }
                    else
                    {
                        MessageBox.Show("没有可用更新!", "自动更新");
                    }
                }
            }
        }
Ejemplo n.º 8
0
        // Check for new releases
        public void checkRelease(bool showResponse = false)
        {
            var url            = "https://github.com/Nemto/Analog/releases";
            var currentVersion = Assembly.GetExecutingAssembly().GetName().Version.ToString();

            if (Upgrade.Check(currentVersion))
            {
                if (MessageBox.Show("En ny oppdatering er tilgjengelig!\nVil du laste ned nå?\n\n" + url, "", MessageBoxButtons.YesNo) == DialogResult.Yes)
                {
                    Process.Start(url);
                }
            }
            else
            {
                if (showResponse)
                {
                    MessageBox.Show("Ingen nye oppdateringer.");
                }
            }
        }