autoUpdater
一个用于小型C/S系统的自动更新程序, 需要更新的文件都zip压缩后存储在MSSQL数据库, 所以只适用于小型文件系统。 好处就是不用部署ftp或http服务器,免除了蛋疼的权限设置,验证。。 designer内有段代码影响vs设计器,需用户自己处理。 demo: ////自动更新程序 public static void autoUpdate() { if (APP.ClientVersion < APP.ServerVersion) { if (File.Exists(APP.AutoUpdaterExePath)) { APP.isLoginQuit = true; Process.Start(APP.AutoUpdaterExePath, APP._UserName + " " + RaywindStudio.Strings.Base64.GetEncodeText(APP.sqlconn.Connection String) + " " + Process.GetCurrentProcess().Id.ToString() + " " + APP.MachineID + " AutoUpdate"); } else MessageBox.Show("已发现新版本,但未找到自动更新程序:\n" + APP.AutoUpdaterExePath); } else { foreach (Process p in Process.GetProcesses()) { if ((p.ProcessName == "AutoUpdater.exe" || p.ProcessName == "AutoUpdater") && p.StartInfo.Arguments.Contains(APP.MachineID)) p.Kill(); } } } ////设置自动更新 public static void MakeUpdate() { if (File.Exists(APP.AutoUpdaterExePath)) { APP.isLoginQuit = true; Process.Start(APP.AutoUpdaterExePath, APP._UserName + " " + RaywindStudio.Strings.Base64.GetEncodeText(APP.sqlconn.ConnectionString) + " " + Process.GetCurrentProcess().Id.ToString() + " " + APP.MachineID); } else MessageBox.Show("未找到更新设置程序:\n" + APP.AutoUpdaterExePath); } String) + " " + Process.GetCurrentProcess().Id.ToString() + " " + APP.MachineID + " AutoUpdate"); } else MessageBox.Show("已发现新版本,但未找到自动更新程序:\n" + APP.AutoUpdaterExePath); } else { foreach (Process p in Process.GetProcesses()) { if ((p.ProcessName == "AutoUpdater.exe" || p.ProcessName == "AutoUpdater") && p.StartInfo.Arguments.Contains(APP.MachineID)) p.Kill(); } } } ////设置自动更新 public static void MakeUpdate() { if (File.Exists(APP.AutoUpdaterExePath)) { APP.isLoginQuit = true; Process.Start(APP.AutoUpdaterExePath, APP._UserName + " " + RaywindStudio.Strings.Base64.GetEncodeText(APP.sqlconn.ConnectionString) + " " + Process.GetCurrentProcess().Id.ToString() + " " + APP.MachineID); } else MessageBox.Show("未找到更新设置程序:\n" + APP.AutoUpdaterExePath); }
用户评论