根据Silverlight版本加载XAP

时间:2012-08-24 13:55:20

标签: silverlight silverlight-4.0 silverlight-5.0

我有一个运行在许多不同位置的Silverlight应用程序。我想升级到Silverlight 5但不幸的是,我们的几个大型网站都有过时的IT部门,他们正在拖延升级。他们告诉我它至少要比运行Silverlight 5还要早4-6个月。我想知道的是:我可以构建一个Silverlight 4版本的XAP和一个Silverlight 5版本的XAP和然后根据访问我网站的计算机上运行的Silverlight客户端版本加载正确的版本。

这甚至可能吗?我四处搜寻,我没有看到任何指向正确方向的东西,所以我来到这里。

由于

1 个答案:

答案 0 :(得分:4)

根据用户拥有的Silverlight插件的版本,当然可以选择加载不同的XAP。关键是使用Silverlight.isInstalled JavaScript函数。

您需要对用于显示Silverlight应用程序的HTML进行一些小的修改:

  • 向您的Silverlight id="slObj"元素添加<object ...>等ID。
  • 删除元素<param name="source" value="...">。此参数的值将在运行时由JavaScript确定。

完成后,您可以调用以下函数来加载正确的Silverlight应用程序。我假设您的Silverlight HTML <object>元素的idslObj

    function loadCorrectSilverlightXAP() {
        var slObj = document.getElementById("slObj");
        if (Silverlight.isInstalled("5.0.0.0")) {
            slObj.source = "URLOfMySilverlight5App.xap";
        } else {
            slObj.source = "URLOfMySilverlight4App.xap";
        }
    }