silverlight   发布时间:2022-05-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何强制重新下载Silverlight XAP文件大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我试图找出如何强制浏览器重新下载.xap文件,如果新版本可用,但旧版本仍然在浏览器中缓存. 我见过另一个帖子: How do you force Firefox to not cache or re-download a Silverlight XAP file? 最好的解决方案似乎是: protected void Page_Load(object sender, EventArgs E) {
我试图找出如何强制浏览器重新下载.xap文件,如果新版本可用,但旧版本仍然在浏览器中缓存.

我见过另一个帖子:
How do you force Firefox to not cache or re-download a Silverlight XAP file?

最好的解决方案似乎是:

protected void Page_Load(object sender,EventArgs E)
{
    var versionnumber = Assembly.GetExecuTingAssembly().GetName().Version.ToString();
    this.myApp.source += "?" + versionnumber;
}

但是,我没有得到this.myApp部分.那是什么样的对象?我很抱歉重新开放这个,但我希望人们会发布完整的解决方案.

谢谢

解决方法

您所看到的是基于asp:Silverlight Web服务器控件的代码,但该控件已从Silverlight 3开始停止.

现在我们要么直接使用object标签,要么敲掉我们自己的服务器控件来呈现我们对object标签的偏好.

作为对象标签,它看起来像这样: –

<form id="form1" runat="server" style="height:100%">
<div id="silverLightcontrolHost">
    <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%">
      <param id="xapsource" runat="server" name="source" value="ClientBin/SilverlightApplication1.xap"/>
      <param name="onError" value="onSilverlightError" />
      <param name="BACkground" value="white" />
      <param name="minRuntimeVersion" value="4.0.50303.0" />
      <param name="autoUpgrade" value="true" />
      <param name="initParams" id="initParams" runat="server" />
      <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=4.0.50303.0" style="text-decoration:none">
          <img src="http://go.microsoft.com/fwlink/?LinkId=161376" alt="Get Microsoft Silverlight" style="border-style:none"/>
      </a>
    </object><iframe id="_sl_historyFrame" style="visibility:hidden;height:0px;width:0px;border:0px"></iframe></div>
</form>

注意源参数上的id和runat =“server”.有了这个,页面加载可能看起来像这样: –

protected void Page_Load(object sender,EventArgs E)
{
    String xapPhysicalPath = Server.MapPath(xapsource.Attributes["value"]);
    datetiR_793_11845@e lastWrite = System.IO.File.GetLastWriteTime(xapPhysicalPath);
    xapsource.Attributes["value"] = xapsource.Attributes["value"] + "?" + lastWrite.ToString("yyyymMddThh:mm:ss");

}

这将确保当xap发生变化时,用于源的url总是会改变.您遇到的原始代码存在缺陷,因为xap仍然可以在没有完全未连接的程序集版本号更改的情况下进行更改.

大佬总结

以上是大佬教程为你收集整理的如何强制重新下载Silverlight XAP文件全部内容,希望文章能够帮你解决如何强制重新下载Silverlight XAP文件所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。