在使用Silverlight时,我注意到Firefox将缓存XAP文件,因此如果我进行更新,用户可能会使用过时的版本.有没有办法强制浏览器每次都重新下载XAP文件,或者只是在更新发布后才强迫它?或者Silverlight配置中是否有设置阻止浏览器完全缓存XAP文件?
谢谢,杰夫
查询字符串工作正常,但我不会使用DateTime.Now,因为它强制用户每次都重新下载应用程序.相反,我们使用以下内容:
protected void Page_Load(object sender, EventArgs e) { var versionNumber = Assembly.GetExecutingAssembly().GetName().Version.ToString(); this.myApp.Source += "?" + versionNumber; }
这样,您所要做的就是增加AssemblyInfo.cs文件中的版本号.
最简单的方法:
这就是我在php中所做的.您读取xap文件的日期/时间,并将其作为参数附加到下载链接.通过这种方式,浏览器将新文件版本视为新链接,因此不在其缓存中.
简单而且有效.此外,当没有下载更新时,浏览器会继续正确缓存.
您可能会发现Web作者和网站管理员的缓存教程很有帮助。本文档讨论了客户端和服务器之间进行交互的不同缓存(浏览器,代理,网关)以及如何控制缓存。
对我来说,最好的答案来自Chris Cairns.我刚刚调整了一下,调用ToString和GetHashCode,为时间戳生成一个ID:
" />
工作得很好!