关于浏览器外的 Silverlight 应用程序:浏览器外的 Silverlight 应用程序 – 如何设置自动更新?

Out of browser Silverlight app - how to setup automatic updates?

我想知道如何设置我的 Silverlight 项目以启用浏览器外应用程序的自动更新。

我在 app.xaml.cs 中添加了一些代码(见下文),重新构建应用程序,作为浏览器外安装,更改了 asseblyinfo.cs 中的 versionionfo,重新构建,再次运行,但不幸的是没有发生更新。我还缺少什么吗?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
    public App()
    {
        this.Startup += this.Application_Startup;
        this.Exit += this.Application_Exit;
        this.UnhandledException += this.Application_UnhandledException;

        InitializeComponent();

        if (Application.Current.IsRunningOutOfBrowser)
        {
            App.Current.CheckAndDownloadUpdateCompleted +=
                new CheckAndDownloadUpdateCompletedEventHandler(App_CheckAndDownloadUpdateCompleted);
            App.Current.CheckAndDownloadUpdateAsync();
        }
    }

    void App_CheckAndDownloadUpdateCompleted(object sender, CheckAndDownloadUpdateCompletedEventArgs e)
    {
        if (e.Error == null && e.UpdateAvailable)
        {
            MessageBox.Show("Application updated, please restart to apply changes.");
        }
    }

编辑

额外问题:

App如何检测到有更新?来自 assemblyinfo.cs?清单中的某个地方?

编辑

谁能解释我为什么即使应用程序是从桌面的快捷方式运行的,IsRunningOutOfBrowser 总是返回 FALSE?


感谢Silvelright 论坛,有一个解决方案。

IsOutOfBrowser 属性不能在构造函数中使用。它开始工作的时间是应用程序启动事件。


确保 Web 服务器正在运行,以便客户端可以连接到服务器并检查更新。您可能还想检查 Error 属性以查看是否有任何异常。