微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

强制客户端更新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 valueClientBin/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 " ;
 param;
if  (System.Diagnostics.Debugger.IsAttached)
para
=  <param name=\ source \  value=\"" + orgSourceValue +   /> else
{
 xappath   HttpContext.Current.Server.MapPath(@ "" + "   orgSourceValue;
DateTime xapCreationDate 
 System.IO.File.GetLastWriteTime(xappath);
para
?ignore = "
 xapCreationDate.ToString()  +  /> ; }
Response.Write(param);
%>
para 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人

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐