强制客户端更新Silverlight XAP文件方法汇总

时间:2020-12-30 15:49:54

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

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

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

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

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

强制客户端更新Silverlight 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"   />
强制客户端更新Silverlight XAP文件方法汇总

 

 

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

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

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