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了。
解决方案
解决方案有两种:
- 升级ASP.NET AJAX Control Toolkit至最新的1.0.61121.0版本;该版本去掉了对Microsoft.Web.Extensions.Design.dll的(错误)引用;
- or 拷贝一个Microsoft.Web.Extensions.Design.dll至站点的bin目录。