在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文件,
代码修改静态代码”<paramname="source"value="ClientBin/SilverlightApp.xap"/>“为动态代码,当项目不是在Debug模式下,则生成新的XAP文件路径。
<objectid="Xaml1"data="data:application/x-silverlight-2,"type="application/x-silverlight-2"
width="100%"height="100%">
<%
stringorgSourceValue=@"ClientBin/SilverlightApp.xap";
stringparam;
if(System.Diagnostics.Debugger.IsAttached)
param="<paramname=\"source\"value=\""+orgSourceValue+"\"/>";
else
{
stringxappath=HttpContext.Current.Server.MapPath(@"")+@"\"+orgSourceValue;
DateTimexapCreationDate=System.IO.File.GetLastWriteTime(xappath);
param="<paramname=\"source\"value=\""+orgSourceValue+"?ignore="
+xapCreationDate.ToString()+"\"/>";
}
Response.Write(param);
%>
<paramname="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人
分享到:
相关推荐
clientBin silverlight xap文件
介绍Silverlight与wcf异步调用,修改xap文件内的配置。内附源代码实例。
国外著名Silverlight网站相应的XAP文件,效果十分绚丽,可以用作参考素材。
可在桌面直接运行XAP文件 无需IE或VS编译环境 亲测好用
Silverlight多文件上传 v4.2源码 程序介绍: 提供了几种上传模式,单文件,多文件,集成js文件的方式上传文件。 将Silverlight上传工具集成到网页文件中需要进行简单的配置,看 如下各项参数作用。 配置: ...
Silverlight多文件(大文件)上传项目源码 一个免费的SL多文件上传,支持大文件上传 Features(特色): - Select multiple files to upload (选择多文件上传) - Upload multiple files at the same time ...
先下载SilverlightLoader压缩包,从下载的Release中找到SilverlightLoader.cs,并将其添加到SLLoader.xap项目中,具体实现方法:在SLLoader.xap项目中右键添加已有项,浏览找到SilverlightLoader.cs即可添加。...
您需要AudioPlayer.xap文件,并选择一个XML播放列表文件。一旦你的,你可以 加载相同的方式Silverlight的应用程序中任何其他。记得设置适当的大小, 并通过在Initparams(见下文)的MP3播放文件的URL或网址。按照...
XAP包(注:XAP文件是Silverlight 2应用程序编译打包后的一个文件,包括了Silverlight 2应用程序所需的一切文件,如程序集、资源文件等) 查看和导出XAP包内容; 查看和导出程序集和资源文件; 查看.NET类型和...
ppt转xap工具,ppt转xap工具,ppt转xap工具,ppt转xap工具
动态加载外部xap silverlight,这样通过映射和服务
XAP中多余程序集清除器:一个用SL开发的商业产品在发布时,可能有若干AXP包文件。一般情况下,有一个主XAP包文件,由主包文件下载其它包文件并装入内容。这种情况下,包文件间可能都会包含共用的程序集DLL,为了减少...
Silverlight SPY是一款共享软件,该软件可以自动获取XAP文件,帮你解析XAP中的文件,该软件和Reflector配合同样可以查看Silverlight项目源代码。同时,可以分解项目中的样式和UI,以及Isolated Storege展示给开发...
xap软件.zip
XAP安装软件,玩转WP7手机 ,XAP安装软件,玩转WP7手机XAP安装软件,玩转WP7手机XAP安装软件,玩转WP7手机
SilverLight 幻灯效果xap包
这是花了2天的时间做的一个小工具,还是挺好用的,所以先跟大家分享一下,这个是一个配置SILVERLIGHT里.xap文件IP的一个小工具,注意 放在clintbin外面
XAP 1.6
大家好,我已经有开发者帐户。 如何在Windows Phone 7设备上安装xap文件。
XAP 400中文说明书,数字会议系统,数字调音系统