首页 新闻 会员 周边

silverlight客户端缓存问题

0
悬赏园豆:20 [待解决问题]

silverlight有新版本更新时, 有的机器需要手动清除缓存才能使用新版本, 否则还会使用旧版本, 这给客户带来不友好的体验, 我的做法是把新版本Xap文件大小记录在数据库中, 登录时取出这个数据与缓存中的Xap进行比较, 如果大小相同, 则从缓存中读取, 如果不相同, 则先下载然后读取, 为什么有的就不行呢, 求解.

Private Function CheckNeedDownload() As Boolean
Dim store As IsolatedStorageFile = IsolatedStorageFile.GetUserStoreForApplication()
Dim path As String = System.IO.Path.Combine(strCacheDirectory, strCacheXap)

'检查需要下载的文件在当前缓存区域是否已经存在
If store.DirectoryExists(strCacheDirectory) = False Or store.FileExists(path) = False Then
Return True
Else
Dim stream As IsolatedStorageFileStream = store.OpenFile(path, FileMode.Open, FileAccess.Read)
If stream.Length.Equals(g_NewXapSize + 1) = False Then
stream.Close()
ClearExternalXapCache()
Return True
Else
stream.Close()
Return False 'False 2012-2-22 zfy 由False改为True 不检查Xap包大小,直接下载
End If
End If

End Function

 

飘雪_流星的主页 飘雪_流星 | 初学一级 | 园豆:80
提问于:2012-03-08 09:58
< >
分享
所有回答(1)
0

利用XAP包版本控制方法可能会比较有用,您可以参照一下http://www.cnblogs.com/yjmyzz/archive/2011/08/07/2130308.html

滴水成河 | 园豆:225 (菜鸟二级) | 2012-03-19 19:35
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册