鱼跃千里

 

让ASP.NET AJAX Control Toolkit的两个版本同时存在于VS2008

     前两天用了一下vs08,有感于它的强大,以及对javascript的智能感知和调试。可是平时项目中又不能用它,毕竟现在很多都是用vs05的,如果创建一个2.0的项目,由于我先前给vs08添加的ASP.NET AJAX Control Toolkit是3.5的版本,没有办法再2.0的项目中使用,自己又添加了一下2.0的Control Toolkit结果又导致3.5的无法正常使用了,怎么回事呢?原来这两个dll文件的命名空间一样,如果在vs都导入的话,可能会有冲突。知道了怎么回事后,就开始我的修改之旅。
      1.把前面我们下载到的ASP.NET AJAX Control Toolkit2.0附带源码的解决方案用vs05打开。看到这么几个项目
AjaxControlToolkit就是这个控件库,SampleWebSite就是示例网站(我们可以不理会他),ToolkitTests就是调用ControlToolkit这个类库的网站的,其实也没有多大用的,不过如果你不管它,重新生成项目时会提示一些错误,我觉得应该没有什么关系的,TemplateVSI,也没有什么用,是用来生成vsi安装程序的。
      2.我们主要对AjaxControlToolkit这个项目下手,随便点开一个cs文件,在命名空间名上点右键-->重构-->重命名,新的名字你可以自由选择,我用的是AjaxControlToolkit20,等它自动重构完,会提示你说有一些字符串引用没有修改,我们就在当前项目()搜索AjaxControlToolkit,替换为AjaxControlToolkit20,记得要选上“全字匹配”,否则会把你前面重构的一些东西替换成“AjaxControlToolkit2020”的样子.

搜索的时候一般查找“当前项目”,如果重新生成失败,那就再选成“解决方案”(我搜解决方案结果让vs死掉了)

        3.这样基本上差不多了,看看AjaxControlToolkit的项目属性改好了没有,如下,在项目上点右键-->属性

设置好后,就在项目上(不是解决方案哦)点右键-->重新生成。
4.
重新生成后,看看ToolkitTests的这个网站项目下的bin目录,是不是多了两个文件,去把它复制出来吧,复制到我在另外一篇文章一个很好用的Ajax控件库AjaxControlToolkit中说的Binaries 文件夹下,按照老办法,在vs08中添加它,这样就可以在vs08中建立.net 2.0的网站项目,而且还可以使用这个Ajax控件扩展了,唯一一点就是我不知道怎么生成的那些多国语言版本.


5. 如果建立的是.net 3.5 的网站,这两个控件扩展都可以看到,如果建立的是.net 2.0的网站,就只能看到2.0的控件扩展.看看他们有什么不同:我这里建了一个.net 3.5 的网站,两个控件都引用了,所以在网页上就有这个显示:第一行的是.net 3.5, 第二行的是.net 2.0的
1<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %>
2<%@ Register assembly="AjaxControlToolkit20" namespace="AjaxControlToolkit20" tagprefix="cc2" %>

6。最后再顺便说一下,vs08建立的。net2.0网站,只有那个sln解决方案文件是vs08的,所以我们就可以用vs05用打开网站的方式,把vs08建立的网站的文件夹打开,然后再另存一个解决方案。这样的话,这个网站就可以通过不同的sln文件打开了.


不想修改的就下我修改的这个吧/Files/zhangyue/AjaxControlToolkit20.rar

posted on 2008-01-26 18:34  鱼跃千里  阅读(1332)  评论(0编辑  收藏  举报

导航