private static bool GetUpdateInfo(out UpdateInfo info) { const string keyLink = "link ="; const string keyVersion = "version ="; info = default(UpdateInfo); using (var client = new WebClient()) { try { var data = client.DownloadData(UpdateUrl + "index.txt"); var updIndex = Encoding.Default.GetString(data).Split('\n'); var updInfo = new StringBuilder(); for (var i = 0; i < updIndex.Length; i++) { var buf = updIndex[i].Trim(); var version = new Version(buf); if (version <= Root.Version) continue; info.IsNewer = true; for (var j = i; j < updIndex.Length; j++) { data = client.DownloadData(UpdateUrl + updIndex[j].Trim() + ".txt"); var lines = Encoding.Default.GetString(data).Split('\n'); for (var k = 0; k < lines.Length; k++) { updInfo.Append(lines[k]); updInfo.Append("\r\n"); } updInfo.Append("\r\n\r\n"); } break; } if (updInfo.Length == 0) return true; info.Description = updInfo.ToString(); data = client.DownloadData(UpdateUrl + "latest.txt"); updIndex = Encoding.Default.GetString(data).Split('\n'); for (var i = 0; i < updIndex.Length; i++) { if (updIndex[i].StartsWith(keyLink)) { info.Link = updIndex[i].Substring(keyLink.Length).Trim(); continue; } if (updIndex[i].StartsWith(keyVersion)) { info.Version = updIndex[i].Substring(keyVersion.Length).Trim(); break; } } return true; } catch (Exception) { //Log("! Update attempt failed: " + e.Message); return false; } } }
public UpdaterDialog(UpdateInfo info) { InitializeComponent(); AcceptButton = btnDownload; lVersionNum.Text = info.Version; tbVersionInfo.Text = info.Description; updateLink = info.Link; tbVersionInfo.Select(0, 0); }