【问题标题】:Customize clickonce download screen自定义 clickonce 下载屏幕
【发布时间】:2013-02-18 17:15:13
【问题描述】:

众所周知,当我们双击 clickonce 安装的应用程序时,会弹出一个显示“正在验证系统要求”的“clickonce 屏幕”。然后如果服务器中有更新的版本,clickonce 会更新本地安装的版本,并启动应用程序。有没有办法自定义整个过程。这并不意味着我想对安装/升级部分做些什么,我只是想改变整个事情的 GUI。 诸如“正在启动应用程序……”的屏幕之类的东西以及无限的进度条就可以了。此屏幕应该代替所有 clickonce 弹出窗口,但允许 clickonce 在后台执行实际操作。 我的意思是那种启动画面,但它覆盖了点击屏幕的 GUI... 有什么建议吗???

【问题讨论】:

    标签: clickonce


    【解决方案1】:

    可以通过使用ApplicationDeployment 类以编程方式更新应用程序。但在这种情况下,您应该实现更新逻辑,这可能是简单的,也可能是复杂的。

    如果您以编程方式查看和下载更新,您可以取消选中“发布”窗口中的更新选项,即 ClickOnce 不会更新应用程序,并且会执行您编写的所有更新逻辑。在代码中可以添加闪屏和同步更新,或者添加一些“动态”,使用CheckForDetailedUpdate方法提供的数据让用户知道更新的进度。

    小样本:

        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
    
            bool isUpdated = tryUpdateApplication();
    
            if (isUpdated)
            {
                Application.Restart();
            }
            else
            {
                Application.Run(new MainForm());
            }
        }
    
        static bool tryUpdateApplication()
        {
            bool result = false;
    
            try
            {
                UpdateCheckInfo info = ApplicationDeployment.CurrentDeployment.CheckForDetailedUpdate();
    
                if (info.UpdateAvailable)
                {
                    //Show what you want to show
                    ApplicationDeployment.CurrentDeployment.Update();
                    //Hide what you showed
                    result = true;
                }
            }
            catch (Exception ex) //better to catch the specific exceptions
            {
                //some exception handling logic
            }
    
            return result;
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-07
      • 1970-01-01
      • 2021-02-17
      • 2018-10-21
      • 1970-01-01
      • 2017-05-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多