Web Site Project转换为Web Application Projects的问题
在VS 2005中,如果你将一个Web项目从Web Site Project转换为Web Application Projects,你将遇到这样的问题:所有aspx或者ascx文件中,如果引用了自定义控件,并且该自定义控件的代码在Web项目中,那么这些文件都无法成功转换,如果手动进行转换,将出现类似这样的错误提示“Generation of designer file failed: Unknown server tag 'DT:MASTERPAGE'”。
例如这样的自定义控件引用代码:
注:Dottext.Web.UI.WebControls的代码在Web项目中。
为什么会出这样的问题?我的猜测是VS 2005在进行转换时,如果遇到自定义控件引用,会先在bin目录中加载相应的Assembly,可是原先的Web Site Project并不在bin中生成相应的Assembly,于是就出现上面的错误。
既然是这个原因,我想到的解决方法就是将这些自定义控件代码移到一个单独的项目中,编译成单独的dll文件,但奇怪的是需要将这些自定义控件的命名空间修改一下,然后在引用的地方将Namespace改为修改后的命名空间,才能成功转换。
例如这样的自定义控件引用代码:
<%@ Register TagPrefix="DT" Namespace="Dottext.Web.UI.WebControls" %>
注:Dottext.Web.UI.WebControls的代码在Web项目中。
为什么会出这样的问题?我的猜测是VS 2005在进行转换时,如果遇到自定义控件引用,会先在bin目录中加载相应的Assembly,可是原先的Web Site Project并不在bin中生成相应的Assembly,于是就出现上面的错误。
既然是这个原因,我想到的解决方法就是将这些自定义控件代码移到一个单独的项目中,编译成单独的dll文件,但奇怪的是需要将这些自定义控件的命名空间修改一下,然后在引用的地方将Namespace改为修改后的命名空间,才能成功转换。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步