gpt4 book ai didi

.net - Silverlight:如何强制浏览器下载更新的客户端版本?

转载 作者:行者123 更新时间:2023-12-04 10:58:15 28 4
gpt4 key购买 nike

我的 Silverlight (4.0) 应用程序(由 ASP.NET 网站托管)使用 4 个项目,它们都使用一个带有程序集版本的文件:

[assembly: AssemblyVersion("1.0.*")]

当前显示的应用程序版本为 1.0.3842.38865,但较新的应用程序(1.0.3854.42448)最近上传到服务器。

问题是浏览器在部署到服务器后不会加载新的 Silverlight 应用程序。

这是用于“渲染”silverlight-html-loader 的 HTML 代码(不确定它是否是正确的名称):
<div id="silverlightControlHost" style="height:950px"> 
<object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%">
<param name="source" value="/ClientBin/VfmElitaSilverlightClientApplication.xap"/>
<param name="onError" value="onSilverlightError" />
<param name="background" value="white" />
<param name="initParams" value="adr=squad,team=811,match=3217203" />
<param name="minRuntimeVersion" value="3.0.40624.0" />
<param name="autoUpgrade" value="true" />
<a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=3.0.40624.0" style="text-decoration:none">
<img src="http://go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight" style="border-style:none"/>
</a>
</object>
<iframe id="_sl_historyFrame" style="visibility:hidden;height:0px;width:0px;border:0px"></iframe>



我试图向包含上次 XAP 文件修改时间的对象的“源”参数添加一个参数:
  <param name="source" value="/ClientBin/VfmElitaSilverlightClientApplication.xap?Ver=2010072243523AM"/>

这导致 Silverlight 应用程序加载错误:

Unhandled Error in Silverlight Application Code: 2103 Category: InitializeError Message: Invalid or malformed application: Check manifest



您能否建议如何强制浏览器从服务器获取新应用程序(不操作浏览器缓存,我想保留浏览器缓存选项)?

非常感谢!

附言有必要补充一点,silverlight 应用程序可以在我的本地主机上正常工作(上传和启动),无需任何参数。只有当我将它上传到网站时 - 它不会被浏览器重新加载。并向 xap 文件路径添加其他参数 - 不适用于本地主机。

最佳答案

我们目前使用的是以下内容,它获取 .xap 文件的最后写入时间并将其附加到源参数:

<object ... >
<%
var source = "ClientBin/App.xap";
string param;
if (System.Diagnostics.Debugger.IsAttached)
param = string.Format("<param name=\"source\" value=\"{0}\" />", source);
else
{
var path = HttpContext.Current.Server.MapPath(string.Empty) + "\\" + source;
var xapCreatedAt = System.IO.File.GetLastWriteTime(path);
param = string.Format("<param name=\"source\" value=\"{0}?version={1}\" />",
source,
xapCreatedAt.ToString("yyyyMMddTHHmmssfff"));
}
Response.Write(param);
%>
<param ...

关于.net - Silverlight:如何强制浏览器下载更新的客户端版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3305927/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com