zoukankan      html  css  js  c++  java
  • 【原创】Silverlight 4学习笔记——创建可自动更新版本的桌面应用

    前言

    当我们开发的应用程序脱离浏览器执行时,必然涉及到需要通知用户自动更新软件。SL4内置了这样的API,能够很方便的实现这些功能。

    内容

    一、首先,我们创建一个项目,随便拖放2个按钮到MainPage.xaml中,添加单击事件,其中一个按钮弹(button1)出一段文本对话框。另一个按钮(button2)用来安装程序到本地。

    代码如下:

     private void button1_Click(object sender, RoutedEventArgs e)
            {
                MessageBox.Show("I'm a desktop application now!","caption", MessageBoxButton.OKCancel);
            }
    
            private void button2_Click(object sender, RoutedEventArgs e)
            {
                Application.Current.Install();
            }
     

    二、由于要使用到ChildWindow控件来显示程序更新信息,我们给项目添加一个dll引用,路径:C:\Program Files\Microsoft SDKs\Silverlight\v4.0\Libraries\Client\System.Windows.Controls.dll

    三、给MainPage.xaml.cs添加代码,来实现自动更新最新版本,并向用户发出提示,全部代码如下:

     public MainPage()
            {
                InitializeComponent();
                if (Application.Current.InstallState!= InstallState.Installed)
                {
                    button2.Visibility =  Visibility.Visible;
                }
                Application.Current.CheckAndDownloadUpdateCompleted += new CheckAndDownloadUpdateCompletedEventHandler(Current_CheckAndDownloadUpdateCompleted);
    
                Application.Current.CheckAndDownloadUpdateAsync();
            }
    
            void Current_CheckAndDownloadUpdateCompleted(object sender, CheckAndDownloadUpdateCompletedEventArgs e)
            {
                if (e.UpdateAvailable == true)
                {
                    ChildWindow cw = new ChildWindow();
                    cw.Title = "有最新版本的程序需要更新!";
                    cw.Content = "请重新关闭程序再运行把~";
                    cw.Show();
                }
            }
    

    其中Application.Current.CheckAndDownloadUpdateAsync()方法会异步的下载和检查最新版本程序,并触发Current_CheckAndDownloadUpdateCompleted事件,我们在该事件参数中获取是否有最新版本信息,如果有,则提示用户重新运行程序以看到最新版本的信息.

    四、完成上述步骤,一个可自动更新的程序就做好了。我们先运行一下,然后点击按钮2,将程序安装到本地。(具体步骤略)

     

    五、然后我们编辑这个项目,随便改动一下,再重新运行。会在浏览器里打开我们刚编辑后的程序。

     

    六、这时候我们运行本地安装的程序,会发现过了一段时间,屏幕变黑,然后弹出提示信息。

     

    七、当我们重新关闭本地的程序,再运行,发现本地程序已经被更新了。

  • 相关阅读:
    codeblocks 配置
    2020-7-28
    echarts markPoint在极坐标散点图中不显示value值
    Oracle cve 2020-14644 分析利用以及回显思路
    Openfire Admin Console SSRF&任意文件读取漏洞 CVE-2019-18394 CVE-2019-18393 poc
    Shiro 回显利用工具(burp
    java反序列化提取payload之Xray高级版的shiro回显poc的提取过程
    CVE-2020-3452 CISCO ASA远程任意文件读取 poc
    记事本陈列-历届数学建模大赛优秀论文(含国赛、美赛、研赛)目录
    懒人必备 |通过爬虫 筛选以及查看CSDN 满足相应积分的资源列表 简单好用
  • 原文地址:https://www.cnblogs.com/wbpmrck/p/2032153.html
Copyright © 2011-2022 走看看