Microsoft.Web.Extensions.Design dll 引用错误问题

在开发机器上运行正常的一个ASP.NET站点,发布至测试服务器后出错,提示无法加载Microsoft.Web.Extensions.Design.dll。该站点使用了ASP.NET AJAX 1.0 Beta 2及ASP.NET AJAX Control Toolkit,其中AJAX Beta 2安装了core ASP.NET 2.0 AJAX Extensions和ASP.NET 2.0 AJAX Futures November CTP,Control Toolkit为1.0.61106.0版本。

问题原因

这个问题由两个原因引起:

  • ASP.NET AJAX Control Toolkit引用了Microsoft.Web.Extensions.Design.dll;
  • core ASP.NET 2.0 AJAX Extensions安装时,如果目标机器上安装了VS,则会安装Microsoft.Web.Extensions.Design.dll,否则不安装。
  • 开发机器必定安装了VS,AJAX Beta 2安装目录下(默认为C:\Program Files\Microsoft ASP.NET\ASP.NET 2.0 AJAX Extensions\v1.0.61025)及GAC中有Microsoft.Web.Extensions.Design.dll。因此开发机器上跑使用了Control Toolkit的站点不会发生任何问题。而测试服务器没有安装VS,就over了。

解决方案

解决方案有两种:

  1. 升级ASP.NET AJAX Control Toolkit至最新的1.0.61121.0版本;该版本去掉了对Microsoft.Web.Extensions.Design.dll的(错误)引用;
  2. or 拷贝一个Microsoft.Web.Extensions.Design.dll至站点的bin目录。