using AutoUpdaterDotNET; using DevExpress.XtraEditors; using Gs.DevApp.ToolBox; using System; using System.Collections.Generic; using System.ComponentModel; using System.Configuration; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; using System.Windows.Forms; namespace Gs.DevApp.TestForm { public partial class XtraForm1 : DevExpress.XtraEditors.XtraForm { public XtraForm1() { InitializeComponent(); string _version = ConfigurationManager.AppSettings["Version"]; AutoUpdater.InstalledVersion = new Version(_version); AutoUpdater.Start("https://dianbei.top/AutoUpdaterTest.xml"); AutoUpdater.CheckForUpdateEvent += AutoUpdater_CheckForUpdateEvent; } private void AutoUpdater_CheckForUpdateEvent(UpdateInfoEventArgs args) { if (args != null) { if (args.IsUpdateAvailable) { string _strMsg = string.Format($@"There is new version {args.CurrentVersion} available. You are using version {args.InstalledVersion}. This is required update. Press Ok to begin updating the application.", @"Update Available"); if (!MsgHelper.AskQuestion(_strMsg)) Application.Exit(); try { if (AutoUpdater.DownloadUpdate(args)) { Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); if (config != null) { AppSettingsSection appSettings = (AppSettingsSection)config.GetSection("appSettings"); if (appSettings.Settings.AllKeys.Contains("Version")) { appSettings.Settings["Version"].Value = args.CurrentVersion; } else { appSettings.Settings.Add("Version", args.CurrentVersion); } config.Save(ConfigurationSaveMode.Modified); ConfigurationManager.RefreshSection("appSettings"); } Application.Exit(); } } catch (Exception exception) { MessageBox.Show(exception.Message, exception.GetType().ToString(), MessageBoxButtons.OK, MessageBoxIcon.Error); } } } else { MessageBox.Show( @"There is a problem reaching update server please check your internet connection and try again later.", @"Update check failed", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } }