zoukankan      html  css  js  c++  java
  • 强制客户端更新Silverlight XAP文件方法汇总

     

    Silverlight相关技术论坛经常会看到Silverlight部署后,客户端无法更新本地XAP文件,每次只能通过手动清理浏览器缓存,客户端才能正常访问到最新版本的XAP文件。本文将介绍几种强制客户端更新Silverlight XAP的方法。

     

    默认来说,当新版本的Silverlight应用发布时,浏览器缓存会查询本地是否已经存在同名XAP文件,并进行简单校验,如果存在并且验证相同,将忽略下载更新最新版本XAP文件。我们可以通过以下几种方式,强制浏览器更新下载XAP文件,

     

    方法1. IIS设置方式

    通过在设置IIS属性,强制XAP文件过期,使浏览器将重新下载XAP文件,步骤如下:

    - 打开IIS管理器;

    - 打开“默认网站”, 然后找到部署的Silverlight项目;

    - 在“ClientBin”目录下找到XAP文件;

    - 进入XAP属性页面,然后选择“HTTP Response Headers”;

     

    - 在Actions栏,选择“Set Common Headers...";

     

    - 选择”Expire Web Content - Immediately“, 然后保存设置。

     

    这样设置后,每当页面刷新时将强制Web页面内容过期,立即重新下载最新的XAP文件到本地。

     

    方法2,动态方式强制更新 

    所谓动态方式强制更新,其实每次部署时使用不同的XAP文件名,浏览器每次检测到不同的文件名,则将重新下载XAP文件。

    这种方式有很多种实现方法,例如,可以手动添加一个XAP文件参数,也可以动态生成一个随机参数,或者根据不同版本号绑定到XAP文件名后等。

    在下面实例代码中,根据部署的日期不同,将日期字符串作为XAP文件的参数,以此强制更新XAP文件,

    代码修改静态代码”<param name="source" value="ClientBin/SilverlightApp.xap"/>“为动态代码,当项目不是在Debug模式下,则生成新的XAP文件路径。

    复制代码
    <object id="Xaml1" data="data:application/x-silverlight-2," type="application/x-silverlight-2"
    width
    ="100%" height="100%">

    <%
    string orgSourceValue = @"ClientBin/SilverlightApp.xap";
    string param;
    if (System.Diagnostics.Debugger.IsAttached)
    param 
    = "<param name=\"source\" value=\"" + orgSourceValue + "\" />";
    else
    {
    string xappath = HttpContext.Current.Server.MapPath(@""+ @"\" + orgSourceValue;
    DateTime xapCreationDate 
    = System.IO.File.GetLastWriteTime(xappath);
    param 
    = "<param name=\"source\" value=\"" + orgSourceValue + "?ignore="
    + xapCreationDate.ToString() + "\" />";
    }
    Response.Write(param);
    %>
    <param name="onError" value="onSilverlightError" />
    复制代码


    方法3, 本地自动生成版本号强制更新XAP文件

    该方法由网友”菩提树下的杨过“提出,作者创建简单本地应用,使用本地应用生成不同的XAP文件名参数,其原理与方法2相同,实现方法不同。

    详细请看教程 ”Silverlight:xap包(或本地缓存)下载版本更新的解决思路“。

     

    如果您有更好的方法和建议,欢迎留言讨论。

    推荐Silverlight 5书籍



     

    Beginning Silverlight 5 in C#, Silverlight5入门级书籍,该书详细介绍Silverlight 5开发基础,由浅入深的介绍Silverlight 5新功能。

    适合Silverlight入门阅读。

    书籍下载

     


    欢迎大家加入“专注Silverlight”QQ技术群,欢迎大家加入一起学习讨论Silverlight&WPF&Widnows Phone开发技术。 
    22308706(一群) 超级群500人 
    37891947(二群) 超级群500人 
    100844510(三群) 高级群200人 
    32679922(四群) 超级群500人 
    23413513(五群) 高级群200人 
    32679955(六群) 超级群500人 
    88585140(八群) 超级群500人 
    128043302(九群 企业应用开发推荐群) 高级群200人 
    101364438(十群) 超级群500人 
    68435160(十一群 企业应用开发推荐群)超级群500人
  • 相关阅读:
    tuple 元组及字典dict
    day 49 css属性补充浮动 属性定位 抽屉作业
    day48 选择器(基本、层级 、属性) css属性
    day47 列表 表单 css初识
    day 46 http和html
    day 45索引
    day 44 练习题讲解 多表查询
    day 40 多表查询 子查询
    day39 表之间的关联关系、 补充 表操作总结 where 、group by、
    day38 数据类型 约束条件
  • 原文地址:https://www.cnblogs.com/jv9/p/2595015.html
Copyright © 2011-2022 走看看