微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Silverlight 3.0 不再包含 asp:silverlight 控件

转载地方:http://www.cnblogs.com/goody9807/archive/2010/02/25/1673304.html

从 Silverlight 2 升级到 Silverlight 3 可能会报如下错误,程序中可能引用了 asp:silverlight 控件:

Could not load file or assembly 'System.Web.Silverlight' or one of its dependencies. The system cannot find the file specified.

未能加载文件或程序集“System.Web.Silverlight”或它的某一个依赖项

原因是 Silverlight 3 SDK 已经移除了 asp:silverlight 和 asp:mediaplayer,这两个控件包含在 System.Web.Silverlight.dll 这个 dll 中。

 

对于升级程序

最简单的方法是:安装 System.Web.Silverlight.dll  这个程序集。

一 是,可以同时安装 Silverlight 2 SDK,Silverlight 2 SDK 安装包中包含了这个 dll,位于 C:\Program Files\Microsoft SDKs\Silverlight\v2.0\Libraries\Server 中,Silverlight 2 与Silverlight 3 可以并行运行(side-by-side)。

二是,也可以直接从 http://code.msdn.microsoft.com/aspnetprojects  获取这个 dll 与源码。

关于新程序

微软建议使用 html 标准标签 object (以及Silverlight.js)替代 asp:silverlight,简单如下

<object type="application/x-silverlight-2"  
        data="data:application/x-silverlight,"    
        width="450" height="220">  
    <param name="source" value="MySilverlightApplication.xap"/>  
</object> 
注意,FireFox 对于 data 属性,需要包含一个额外的,(逗号)结尾。
其他完整的属性以及参数可以参考 MSDN @L_502_2@ 
此外,下载文档 ASP.NET Server Controls for Silverlight in the Silverlight 3 SDK 详细介绍了如何在 Silverlight 3 中用 object 来初始化 silverlight 应用程序。
示例(见Silverlight 3 object tag param list (aka Where is my asp:Silverlight control?))
<object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%">
  <param name="source" value="ClientBin/MyApplication.xap"/>
  <param name="onError" value="onSilverlightError" />
  <param name="background" value="white" />
  <param name="minRuntimeVersion" value="3.0.40624.0" />
  <param name="autoUpgrade" value="true" />
  <param name="enableRedrawRegions" value="true" />          
  <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=3.0.40624.0" style="text-decoration:none">
      <img src="http://go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight" style="border-style:none"/>
  </a>
</object><iframe id="_sl_historyFrame" style="visibility:hidden;height:0px;width:0px;border:0px"></iframe>
注意上面的代码中 iframe 是为了跨浏览器兼容性。iframe 防止 Safari 缓存该页。当用户退回访问过的页面,Safari 缓存会阻止 Silverlight 插件重新加载。iframe 必须紧接着 </object>。
 
参考
Silverlight 3 object tag param list (aka Where is my asp:Silverlight control?) 
ASP.NET Controls in Silverlight 3 
http://silverlight.net/learn/whitepapers/

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐