固执的Silverlight缓存问题?

时间:2012-01-10 16:00:08

标签: silverlight silverlight-4.0

在直接跳到正常的缓存修复解决方案之前,请先耐心一点。这是发生的事情:

我有一个项目,在我们的解决方案中有几十个项目,在我构建和运行时似乎拒绝更新代码。它不是xap的一部分,而是一个dll坐在xap旁边。

我已经确定的事情不是解决方案:

  • 我检查了它的dll的输出,它已经构建,并且其内容已更新以匹配我的代码,并通过dotPeek验证。但它拒绝显示更新的代码。
  • 我清理,重建解决方案,然后重新启动开发服务器,但它拒绝显示更新的代码。
  • 我切换到其他浏览器,没有骰子。
  • 我清除浏览器缓存无济于事。
  • 我完全删除了我的本地代码并从我们的存储库中进行了新的提取,再次,没有来自silverlight的爱。
但是,我并没有取得一点成功。我被抛出的ONE骨头是在周末。我没有接触它几天,我周一回来工作,没有做任何事情,它只是更新。然而,现在,它再次被缓存,或者某种东西,因为它停留在我对它做出的最后一组更改中。

所以我的问题是:我错过了什么?

3 个答案:

答案 0 :(得分:0)

这里有几个答案:Prevent Silverlight 3 from caching while debugging
下面的代码帮助了我(将其添加到托管该应用的页面的Page_Load):

Response.Cache.SetExpires(DateTime.Now.AddSeconds(-100));
Response.Cache.SetCacheability(HttpCacheability.NoCache);

更新: Prevent Silverlight xap from being cached by proxy server

答案 1 :(得分:0)

您的文件很可能只读,MS Build无法显示错误消息,也不会更新文件。如果您错误地检入了.xap文件,那么这是可能的,您必须从源代码控制中删除它,并通过删除readonly复选框使.xap文件可写。

Visual Studio会错误地检查您的.xap文件,而silverlight版本不会报告任何错误。

其次,您是否安装了任何其他文件备份服务,如Shadow copy或Dropbox类型的在线备份服务,可能会使xap文件只读,导致此问题。

答案 2 :(得分:0)

“所以我的问题是:我错过了什么?”

我们的应用程序使用的内部缓存机制。所以,你们谁都没有真正帮助过我,因为它是我们软件的架构特色。