예제 #1
0
        private void CheckUpdate(Boolean auto)
        {
            if (auto)
            {
                XTrace.WriteLine("自动更新!");
            }

            Upgrade.DeleteBuckup(".");

            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);
                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 (!auto || MessageBox.Show("发现新版本{0},是否更新?".F(up.Link.Time), "自动更新", MessageBoxButtons.YesNo) == DialogResult.Yes)
                    {
                        var rs = up.Update();
                        MessageBox.Show("更新" + (rs ? "成功" : "失败"), "自动更新");
                    }
                }
                else if (!auto)
                {
                    if (up.Link != null)
                    {
                        MessageBox.Show("没有可用更新!最新{0}".F(up.Link.Time), "自动更新");
                    }
                    else
                    {
                        MessageBox.Show("没有可用更新!", "自动更新");
                    }
                }
            }
        }