public void CheckForUpdates() { Dispatcher.Invoke(() => { try { DLUpdate = new WebClient(); JsonDownload = new WebClient(); string actualVersion = Convert.ToString(System.Reflection.Assembly.GetExecutingAssembly().GetName().Version); string link = DLUpdate.DownloadString("http://pastebin.com/raw.php?i=bfs0Jdci"); string newVersion = DLUpdate.DownloadString(link + "WebExpress/update.txt"); DLUpdate.DownloadFileCompleted += DLUpdate_DownloadFileCompleted; var version1 = new Version(actualVersion); var version2 = new Version(newVersion); var result = version1.CompareTo(version2); if (result > 0) Console.WriteLine("version1 is greater"); else if (result < 0) { JsonDownload.DownloadFileAsync( new Uri(link + "WebExpress/files.json"), "files.json"); this.Hide(); DLUpdate.DownloadFileAsync(new Uri(link + "WebExpress/Update.exe"), "Update.exe"); } else Console.WriteLine("versions are equal"); return; } catch(Exception ex) { } }); }
private void DLUpdate_DownloadFileCompleted(object sender, System.ComponentModel.AsyncCompletedEventArgs e) { try { if (File.Exists("Update.exe")) { Process.Start("Update.exe"); Application.Current.Shutdown(); } } catch (Exception ex) { Console.WriteLine("Update open: " + ex.Message); } }