YuAye

别人笑我太屁癫,我笑他人鞋不穿。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

当Silverlight低版本的Runtime碰到了高版本的Xap时

Posted on 2009-08-21 16:59  阿野  阅读(446)  评论(1)    收藏  举报

由于公司开发的Silverlight软件给客户,
客户是不能上外网的。
又由于客户之前装过旧版本的Silverlight runtime,
运行不了新的Silverlight程序,
客户又懒,不愿意自已卸载,
没折了,只好想办法了。

silverlight运行出错处理是
javascript的onSilverlightError(sender ,args) 函数处理的。

当低版本runtime运行高版本的Xap就会报一个
错误码为8001,错误类型 initiailizeError的。

我在里面写一段javascript代码进行捕获一下,

if( args.ErrorCode == 8001 )
{
 alert("您机器上Silverlight runtime版本太低,不能运行高版本的程序!");
 window.location = "";//内网的一个runtime地址了
}

测试了一下,
会有两个小问题了。
1.就是IE的安全域问题会拦截runtime文件了,
这个客户在弹出提示框开一下就好了。
(客户懒,我也懒得在处理了)
2.就是安装之后,刷新是没用的,需要关闭整个浏览器了。

OK,可以了。