【问题标题】:Loading XAP based on Silverlight Version基于 Silverlight 版本加载 XAP
【发布时间】:2012-08-24 13:55:20
【问题描述】:
我有一个跨多个不同位置运行的 Silverlight 应用程序。我想升级到 Silverlight 5,但不幸的是,我们的几个大型站点都有过时的 IT 部门,这些部门正在拖延升级。他们告诉我至少需要 4-6 个月才能运行 Silverlight 5。我想知道的是:我可以构建我的 XAP 的 Silverlight 4 版本和我的 XAP 的 Silverlight 5 版本吗?然后根据访问我站点的计算机上运行的 Silverlight 客户端版本加载正确的版本。
这甚至可能吗?我四处寻找,但没有看到任何指向正确方向的东西,所以我来到了这里。
谢谢
【问题讨论】:
标签:
silverlight
silverlight-4.0
silverlight-5.0
【解决方案1】:
当然可以根据用户拥有的 Silverlight 插件版本选择加载不同的 XAP。关键是使用Silverlight.isInstalled JavaScript 函数。
您需要对用于显示 Silverlight 应用程序的 HTML 进行一些小修改:
- 向您的 Silverlight
<object ...> 元素添加一个 ID,例如 id="slObj"。
- 删除元素
<param name="source" value="...">。此参数的值将在运行时由 JavaScript 确定。
完成后,您可以调用如下函数来加载正确的 Silverlight 应用程序。我假设您的 Silverlight HTML <object> 元素具有 id 的 slObj:
function loadCorrectSilverlightXAP() {
var slObj = document.getElementById("slObj");
if (Silverlight.isInstalled("5.0.0.0")) {
slObj.source = "URLOfMySilverlight5App.xap";
} else {
slObj.source = "URLOfMySilverlight4App.xap";
}
}