自动更新解决方案

由于boss不让使用smart client,所以只好使用下载-覆盖-重启应用程序的三步骤
首先,我们需要一个Loader程序,来引导主程序
http://files.cnblogs.com/wildfish/AppUpdateStarter.rar
第二,在主程序中
// 获取船坞系统的程序集
            
// 注意区分大小写
            Assembly asm  =  Assembly.LoadFrom(Application.StartupPath  +  Path.DirectorySeparatorChar  +   " SD.dll " );
            
// 获取版本信息
             string  curVersion  =  VersionConfig.GetVersion(asm);
            
// 确认窗口
            Form_UpdateConfirm confirmForm  =   new  Form_UpdateConfirm();
            
// 校验版本对象            
            CheckVersionSystem checkVersion  =   new  CheckVersionSystem(confirmForm,  " SDSYSTEM " , curVersion, Application.StartupPath,  false );
            
bool  needRestart  =   false ;
            
// 更新状态窗口
            Form_UpdateState stateForm  =   new  Form_UpdateState(checkVersion);
            
// 判断版本,尝试升级            
            checkVersion.TryUpdate( ref  needRestart);

            
// 如果需要重新启动
             if  (needRestart)
            
{
                Environment.ExitCode 
= 2//the surrounding AppStarter must look for this to restart the app.
                MessageBox.Show("提示:系统更新完毕!请重新启动!""更新完毕");
            }

            
else
            
{
                Form_SD_Main doc_SD 
= new Form_SD_Main();
                Application.Run(doc_SD);
            }


第三步,安装程序要按照如下目录方式来制作
外层的目录,一个Loader程序,一个配置文件,应用程序的文件夹

自动更新解决方案_第1张图片
这个是Penavicoxm文件夹内部的内容
自动更新解决方案_第2张图片
这样我们就可以可控的控制应用系统的升级
当然了这种方式存在一种缺点,不能及时有效的让用户更新,用户只有重新进入系统的时候才会体现更新
如果为了比较及时地,最好使用smart client,或者用b/s架构:)

转载于:https://www.cnblogs.com/wildfish/archive/2005/04/30/148047.html

你可能感兴趣的:(自动更新解决方案)