因为自动更新需要更新程序文件,那么我的应用程序如何才能“自杀”呢?
在一般的情况下,自动更新会自动提示用户关闭主程序,用户也可以选择自动结束来自动关闭主进程。如果存在特殊情况,如:
- 程序启动了不止一个进程;
- 程序具有自保护功能,被结束后将会自动重新启动
出现以上情况时,则需要你手动处理更新的事件,因为默认情况下自动更新程序只会自动关闭主进程(也就是启动更新检查的进程),对于其它进程则不予理睬。
如何手动处理这样的情况,可以手动处理检查更新:
- FSLib.App.SimpleUpdater.Updater.Instance.UpdatesFound += (s, e) =>
- {
- //确认是否更新,并启动外部程序,启动的程序时传递多个进程的PID。注意程序的自我退出。
- FSLib.App.SimpleUpdater.Updater.Instance.StartExternalUpdater(
- new string[]{
- "devenv", //使用进程名
- "*2567" //可以使用程序的PID
- });
- };
- FSLib.App.SimpleUpdater.Updater.UpdateUrl = "http://ls.com/update.xml";
- FSLib.App.SimpleUpdater.Updater.Instance.BeginCheckUpdateInProcess();
指定的进程将会在更新时要求关闭。
在版本(1.3.1.0)之后,将加入“同应用程序的目录下的进程自动请求关闭”的功能。但是,如果程序存在自保护情况,则依然需要这样去手动处理。