• 自动更新解决方案


    由于boss不让使用smart client,所以只好使用下载-覆盖-重启应用程序的三步骤
    首先,我们需要一个Loader程序,来引导主程序
    https://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程序,一个配置文件,应用程序的文件夹


    这个是Penavicoxm文件夹内部的内容

    这样我们就可以可控的控制应用系统的升级
    当然了这种方式存在一种缺点,不能及时有效的让用户更新,用户只有重新进入系统的时候才会体现更新
    如果为了比较及时地,最好使用smart client,或者用b/s架构:)

  • 相关阅读:
    Requests库入门——应用实例-网络图片的爬取与保存(好看的小姐姐≧▽≦)
    Python Requests库简单入门
    Python BeautifulSoup库基础及一般元素提取方法
    Coloring a Tree(耐心翻译+思维)
    Python jieba库的使用说明
    竖式除法模拟
    Pythagorean Triples毕达哥斯拉三角(数学思维+构造)
    C++ STL中的Binary search(二分查找)
    Polycarp and Letters(set首战!)
    Java多线程干货系列—(一)Java多线程基础
  • 原文地址:https://www.cnblogs.com/wildfish/p/148047.html
Copyright © 2020-2023  润新知