【问题标题】:XAP Caching in Out of Browser (OOB) Silverlight Applications浏览器外 (OOB) Silverlight 应用程序中的 XAP 缓存
【发布时间】:2011-04-20 00:46:33
【问题描述】:

安装 Silverlight 4 应用程序并在浏览器外运行 (OOB) 时,是否可以让应用程序自动识别 .xap 文件的更新(并自动安装或提示用户更新)?

如果您从应用程序的原始 Web URL 访问应用程序,系统会自动为您提供最新和最好的(根据您的设置)。

但是,一旦我安装应用程序以运行 OOB,它似乎无法识别对原始 .xap 文件的更新,似乎也没有任何方法可以触发更新(除了右键单击、卸载,然后去网站获取最新版本)。

提前致谢

【问题讨论】:

    标签: silverlight silverlight-4.0 out-of-browser silverlight-oob


    【解决方案1】:

    查看 CheckAndDownloadUpdateAsync 方法但未找到更新的其他人的其他信息。确保您已签署您的 xap 文件。

    “SL项目”->属性->签名->勾选“签署Xap文件”

    正如许多示例所暗示的,当 CheckAndDownloadUpdateAsync 放置在 Application_Startup() 中时,似乎会阻塞 UI 线程。将其放置在后台工作人员中的破坏性较小,并且允许我们自定义检查的频率。

    更新:我不确定 CheckAndDownladUpdateAsync 的行为是否仍然与 SL5 相同。这就是我使用 SL4 的方式:

    我使用 Dispatcher.BeginInvoke() 包装了任何需要 UI 线程的代码,包括:

    Deployment.Current.Dispatcher.BeginInvoke(() =>
    {
      App.Current.CheckAndDownloadUpdateCompleted += new CheckAndDownloadUpdateCompletedEventHandler(App_CheckAndDownloadUpdateCompleted);
      App.Current.CheckAndDownloadUpdateAsync();
    }
    

    【讨论】:

    • 您能否提供一个示例,说明您如何集成后台工作程序和 CheckAndDownloadUpdateAsync()?当我尝试按照您的方式进行操作时,我遇到了一个无效的跨线程异常......
    • 这用于 SL4,我不确定它是否仍然适用于 SL5。我用 Dispatcher.BeginInvoke() 包装了任何需要 UI 线程的代码。包括:App.Current.CheckAndDownloadUpdateCompleted += new CheckAndDownloadUpdateCompletedEventHandler(App_CheckAndDownloadUpdateCompleted); App.Current.CheckAndDownloadUpdateAsync();
    【解决方案2】:

    这是您的应用程序需要实现的东西。然而Application 对象提供了一种通过CheckAndDownloadUpdateAsync 方法实现此目的的简单方法。

    【讨论】:

      猜你喜欢
      • 2011-05-23
      • 1970-01-01
      • 1970-01-01
      • 2011-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多